【发布时间】:2021-08-06 11:56:09
【问题描述】:
请帮帮我,因为这个错误,我无法运行程序。
不能从静态上下文引用非静态方法
onClicked(int)。
代码
public class ProfileAdapter extends RecyclerView.Adapter<ProfileAdapter.myViewHolder> {
ArrayList<Profile_Info> infos;
Context context;
MyClickedInterface myClickedInterface;
public ProfileAdapter(ArrayList<Profile_Info> infos, Context context, MyClickedInterface myClickedInterface) {
this.infos = infos;
this.context = context;
this.myClickedInterface = myClickedInterface;
}
@NonNull
@Override
public ProfileAdapter.myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.my_profile,parent,false);
return new myViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ProfileAdapter.myViewHolder holder, int position) {
holder.textView.setText(infos.get(position).getAppName());
holder.imageView.setImageResource(infos.get(position).getImageResource());
}
@Override
public int getItemCount() {
return infos.size();
}
public class myViewHolder extends RecyclerView.ViewHolder{
TextView textView;
ImageView imageView;
public myViewHolder(@NonNull View itemView) {
super(itemView);
textView =(TextView) itemView.findViewById(R.id.text);
imageView = (ImageView) itemView.findViewById(R.id.image);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MyClickedInterface.onClicked(getAdapterPosition());
}
});
}
}
interface MyClickedInterface{
void onClicked (int position);
}
}
【问题讨论】:
-
这里 --> MyClickedInterface.onClicked(getAdapterPosition());
-
你需要阅读错误输出,如果你不理解它,请研究错误细节(或至少在这里发布错误输出)。
标签: java android android-recyclerview