我想要使用列表視圖,並且當我將項添加到其ListAdapter的ArrayList並調用notifyDataSetChanged時,它會引發異常。調用下面的addItem例程將引發異常。將項添加到ListAdapter導致異常
消息稱源未找到,然後該: //從DataSetObservable.java(1.5版本:49.0,超級位)編譯 //簽名:Landroid /數據庫/可觀察; 公共類android.database.DataSetObservable延伸android.database.Observable {
//方法描述符#8()V //堆棧:3,當地人:1 公共DataSetObservable(); 0 aload_0 [此] 1 invokespecial android.database.Observable()[1] 4新了java.lang.RuntimeException [2] 7 DUP 8 LDC [3] 10 invokespecial了java.lang.RuntimeException(java中。行數: 行數: [pc:0,line:5] 局部變量表: [pc:0,pc:14] local:this index:0類型:android.database .DataSetObservable
我的初始化代碼:
tickerList = (ListView)findViewById(R.id.ListView01);
tickerModel = new StockAdapter(stocks);
tickerList.setAdapter(tickerModel);
我已經包含了我的自定義適配器類。 (從在線示例中修改)
private class StockAdapter extends BaseAdapter {
private ArrayList <Stockdata>mData = new ArrayList<Stockdata>();
private LayoutInflater mInflater;
public StockAdapter(ArrayList<Stockdata>rows) {
mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mData = rows;
}
public void addItem(Stockdata item) {
mData.add(item);
notifyDataSetChanged();
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Stockdata getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
System.out.println("getView " + position + " " + convertView);
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row, null);
holder = new ViewHolder();
holder.textView = (TextView)convertView.findViewById(R.id.SYMBOL_CELL);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
holder.textView.setText(mData.get(position).getSymbol());
return convertView;
}
}
public static class ViewHolder {
public TextView textView;
}
嘗試傳遞'tickerList'作爲第二個參數爲'mInflater.inflate()'。 這是一個非常奇怪的例外。你可以嘗試用四個空格縮進來粘貼它,這樣可以更容易地閱讀它嗎? – synic 2010-04-21 18:00:45
我不相信這是一個堆棧跟蹤。這看起來有點像Eclipse窗口,顯示暫停的線程。嘗試在Eclipse中使用'adb logcat',DDMS或DDMS透視圖來獲取異常信息。 – CommonsWare 2010-04-21 18:28:36
爲什麼使用BaseAdapter而不是ArrayAdapter? – Macarse 2010-04-21 22:59:24