我知道可能会有一些类似的问题,但这与他们完全不同。我有一个android studio项目,其中我有一个带有CardView的RecyclerView。当我在MainActivity.java中定义适配器时,它给我的错误是:'Adapter cannot be applied to (package_name, java.utill.List<package_name>)
'
这里是主活动代码。
package com.example.app;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class className extends AppCompatActivity {
RecyclerView viewer;
package_adapter adapter;
List<item> itemList = new ArrayList <> ();
@Override
protected void onCreate( Bundle savedInstanceState ) {
super.onCreate (savedInstanceState);
setContentView (R.layout.layout);
viewer = findViewById (R.id.viewer);
viewer.setHasFixedSize (true);
viewer.setLayoutManager (new LinearLayoutManager(this));
itemLoader ();
}
public void itemLoader(){
String data = "";
String name = "";
String creator = "";
int likes;
try {
URL url = new URL("https://www.unicas-official.com/questions.json");
HttpURLConnection htc = (HttpURLConnection) url.openConnection();
InputStream inputStream = htc.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader (inputStream));
String raw = "";
while (raw != null){
raw = br.readLine();
data = data+raw;
}
JSONArray jsonArray = new JSONArray (data);
JSONObject jsonObject=jsonArray.getJSONObject (0);
name=name + jsonObject.get ("name");
creator=creator + jsonObject.get ("creator");
likes= Integer.parseInt (jsonObject.get ("likes").toString ());
itemList.add (
new item (
"https://notin",
name,
creator,
likes
)
);
adapter = new package_adapter (className.this, itemList);
viewer.setAdapter (adapter);
}catch (Exception e){
}
}
}
适配器类代码。
package com.example.hometutor;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import org.w3c.dom.Text;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class package_adapter extends RecyclerView.Adapter<package_adapter.packageHolder> {
private Context context;
private List <item> itemList;
@NonNull
@Override
public packageHolder onCreateViewHolder( @NonNull ViewGroup parent , int viewType ) {
LayoutInflater inflater = LayoutInflater.from (context);
View view = inflater.inflate (R.layout.item, null);
return new packageHolder (view);
}
@Override
public void onBindViewHolder( @NonNull packageHolder holder , int position ) {
item packs = itemList.get (position);
holder.package_name.setText (packs.getName());
holder.package_creator.setText (packs.getCreator_name ());
holder.package_got_likes_count.setText (String.valueOf (packs.getLikes ()));
}
@Override
public int getItemCount() {
return itemList.size ();
}
class packageHolder extends RecyclerView.ViewHolder{
ImageView package_ico;
TextView package_name, package_creator, package_got_likes_count;
packageHolder( @NonNull View itemView ) {
super (itemView);
package_ico = itemView.findViewById (R.id.package_imgage);
package_name = itemView.findViewById (R.id.package_name);
package_creator = itemView.findViewById (R.id.creator);
package_name = itemView.findViewById (R.id.likes);
}
}
}
我对这个错误感到非常沮丧。请帮助我!! 先谢谢你