【发布时间】:2022-01-16 11:21:22
【问题描述】:
package com.example.test;
import android.content.Context;
import android.provider.DocumentsContract;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class ProgramAdapter extends ArrayAdapter<String> {
Context context;
int[] images;
String[] programName;
String[] programDescription;
public ProgramAdapter( Context context, String [] programName, int[] images, String[] programDescription) {
super(context, R.layout.single_item, R.id.textView1, programName);
this.context = context;
this.images = images;
this.programName = programName;
this.programDescription = programDescription; }
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View singleItem = convertView;
ProgramViewHolder holder = null;
if(singleItem == null){
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
singleItem = LayoutInflater.inflate(R.layout.single_item, parent, false);
holder = new ProgramViewHolder(singleItem);
singleItem.setTag(holder); }
else{
holder = (ProgramViewHolder) singleItem.getTag(); }
holder.itemImage.setImageResource(images[position]);
holder.programTitle.setText(programName[position]);
holder.programDescription.setText(programDescription[position]);
singleItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "You clicked:" + programName[position], Toast.LENGTH_SHORT ).show();
}
});
return singleItem;
}
}
我正在尝试在 Android Studio 中创建带有文本的 Listview 图像。以下行中仅显示一个错误:
singleItem = LayoutInflater.inflate(R.layout.single_item, parent, false);
我有 3 个类:MainActivity、ProgramAdapter 和 ProgramViewHolder
不能从静态上下文中引用非静态方法“inflate(int, android.view.ViewGroup, boolean)”
【问题讨论】:
-
请注意格式化How do I format my posts using Markdown or HTML 的约定。在这种情况下已经为您完成了!
标签: java android-studio listview android-inflate