您好我的Android应用程序有一个listactivity这个活动从另一个活动调用Intent,在调用ListActivity的onCreate方法后创建一个新的AsynchTask并调用Web服务并将所有东西放入我的ArrayList数据来自Web服务很好,但是当我尝试实现customArrayAdapter的getView时,事情变得很奇怪,它有时会显示列表的内容,有时甚至是滚动时的内容。这是我自定义适配器的getView方法。 (布局= textview + listView)
class EntryDetailsAdapter extends ArrayAdapter<Entry>{
private ArrayList<Entry> entryDetails;
private Entry tempEntry;
public EntryDetailsAdapter(Context context, int textViewResourceId,
List<Entry> objects) {
super(context, textViewResourceId, objects);
// TODO Auto-generated constructor stub
entryDetails = (ArrayList<Entry>) objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View mView = convertView;
if(mView == null){
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mView = inflater.inflate(R.layout.entry_rows, null);
}
tempEntry = entryDetails.get(position);
//data is fine but problem is while occur while showing data
if(tempEntry != null){
//get the textview from list row xml that i defined
TextView textView = (TextView) findViewById(R.id.entryRowTextView);
if(textView != null){
//i dont know why but this sometimes giving null so check
textView.setText(tempEntry.getEntryContent());
}
}
return mView;
}
}
[注意]问题可能类似于this question,但我无法找到解决方案
答案 0 :(得分:0)
既然您说要在列表中显示的数据是从Web服务汇集的,那么数据是否可能尚未加载并且您已经尝试访问它?您是否在设置列表适配器之前等待从服务加载数据?
答案 1 :(得分:0)
尝试:
TextView textView = (TextView)mView.findViewById(R.id.entryRowTextView);
在获取特定行的TextView字段时,您错过了mView。