我是Android开发的新手。
我正在尝试为listView创建一个arrayAdapter。我希望我的listView包含一个图像和两个TextView。为此我已经覆盖了ArrayAdapter的构造函数,并且还覆盖了getView方法
每次我尝试运行它时,我的应用都会停止。我在代码中找不到错误。
public class main extends ActionBarActivity {
String[] frnds;
String[] depName;
int[] images = {R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g, R.drawable.h, R.drawable.i};
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.listView1);
Resources res = getResources();
frnds = res.getStringArray(R.array.names);
depName = res.getStringArray(R.array.description);
customAdapter adapter = new customAdapter(this, frnds, depName, images);
lv.setAdapter(adapter);
}
}
class customAdapter extends ArrayAdapter<String> {
Context context;
String[] name;
String[] description;
int[] imgs;
customAdapter(Context c, String[] names, String[] desc, int img[]) {
super(c, R.layout.single_row, R.id.textView1, names);
this.context = c;
this.imgs = img;
this.name = names;
this.description = desc;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.single_row, parent, false);
TextView tv1 = (TextView) row.findViewById(R.id.textView1);
TextView tv2 = (TextView) row.findViewById(R.id.textView2);
ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
tv1.setText(name[position]);
tv2.setText(description[position]);
iv.setImageResource(imgs[position]);
return row;
}
}
答案 0 :(得分:0)
我遇到的问题是因为内存问题。
我尝试使用drawable文件夹中的图像,这需要占用大量空间,因为显示“内存不足”错误。
此外,覆盖getView的代码也不是一个有效的代码。
我正在尝试为此找到解决方案,并会尽力让您更新。