Java Android:想在我的mainactivity中访问viewholder中的文本视图吗
我很抱歉我的英语不好,但我的问题是: 我使用ArrayAdapter之类的自定义列表视图,并在我的主要活动中创建ArrayAdapter作为实习生类,如下所示:Java Android:想在我的mainactivity中访问viewholder中的文本视图吗,java,android,android-listview,android-adapter,Java,Android,Android Listview,Android Adapter,我很抱歉我的英语不好,但我的问题是: 我使用ArrayAdapter之类的自定义列表视图,并在我的主要活动中创建ArrayAdapter作为实习生类,如下所示: /*This is my Main Activity*/ public class KhassaideActivity extends Activity { ViewHolder holder; KhassaideAdapterbi listadapter ; ListView l ;
/*This is my Main Activity*/
public class KhassaideActivity extends Activity {
ViewHolder holder;
KhassaideAdapterbi listadapter ;
ListView l ;
@Override
protected void onCreate(Bundle savedInstanceState) {
l= (ListView) findViewById(R.id.listDieuzbou);
listadapter = new KhassaideAdapterbi(this, R.layout.affichage_khassaide, rowItems);
l.setAdapter(listadapter);
}
/*This is my intern class ArrayAdapter*/
private class KhassaideAdapterbi extends ArrayAdapter<RowItem>{
Context context;
public KhassaideAdapterbi(Context context, int resourceId,
List<RowItem> items) {
super(context, resourceId, items);
this.context = context;
}
public class ViewHolder {
ImageView imageView;
TextView trad;
TextView trans;
TextView number;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
RowItem rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.affichage_khassaide, null);
holder.number = (TextView) convertView.findViewById(R.id.number);
holder.trad = (TextView) convertView.findViewById(R.id.traduction);
holder.trans = (TextView) convertView.findViewById(R.id.transcription);
holder.imageView = (ImageView) convertView.findViewById(R.id.arabe);
convertView.setTag(holder);
}
else
holder = (ViewHolder) convertView.getTag();
holder.trad.setText(rowItem.getTitle());
holder.trans.setText(rowItem.getDesc());
holder.imageView.setImageResource(rowItem.getImageId());
holder.number.setText(rowItem.getNumber());
return convertView;
}
}
但是我在这一行得到一个NullPointerExceptionlistadapter.holder.trad.getText()
有人能解决这个问题吗?先谢谢你。再次为这糟糕的英语感到抱歉你应该改变这个
private class KhassaideAdapterbi extends ArrayAdapter<RowItem>{
Context context;
List<RowItem> Rowitems;
public KhassaideAdapterbi(Context context, int resourceId,
List<RowItem> items) {
super(context, resourceId, items);
this.context = context;
this.Rowitems = items;
}
私有类KhassaideAdapterbi扩展了ArrayAdapter{
语境;
列出项目;
公共KhassaideAdapterbi(上下文,int resourceId,
(列表项目){
超级(上下文、资源ID、项目);
this.context=上下文;
此.Rowitems=项目;
}
现在,在调用setContentView方法的onCreate方法中从Rowitems获取数据…?我在上面的代码中省略了,但我首先在我的onCreate方法中调用它,就像`@Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_khassaide)`但是Rowitems的值不是最终使用的,或者它是我的主要活动的一个属性?非常感谢它的工作非常完美,我将Rowitems作为我的主要活动的一个属性使用。
private class KhassaideAdapterbi extends ArrayAdapter<RowItem>{
Context context;
List<RowItem> Rowitems;
public KhassaideAdapterbi(Context context, int resourceId,
List<RowItem> items) {
super(context, resourceId, items);
this.context = context;
this.Rowitems = items;
}