0
在我的應用程序中,遇到與here或here相同的錯誤,但建議的清理Eclipse項目的解決方案對我無效。具體來說,我有一個自定義ListView適配器試圖從其佈局文件中加載兩個TextView,第一個TextView沒有問題,但第二個拋出ResourceNotFound異常並使應用程序崩潰。BaseAdapter ResourceNotFound異常
佈局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/roomNameText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:text="Room name"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/roomNumText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/roomNameText"
android:layout_below="@+id/roomNameText"
android:text="Room number"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
適配器
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
m = new ViewHolder();
convertView = mInflater.inflate(R.layout.room_row, null);
convertView.setTag(m);
} else {
m = (ViewHolder) convertView.getTag();
}
m.name = (TextView) convertView.findViewById(R.id.roomNameText);
m.name.setText(rooms.get(position).getName());
m.roomNumber = (TextView) convertView.findViewById(R.id.roomNumText);
m.roomNumber.setText(rooms.get(position).getRoomNumber());
return convertView;
}
我也曾嘗試編輯R.java只是爲了迫使Eclipse來重新生成該文件,但也不能正常工作。真的不知道還有什麼要嘗試,因爲我有另一個基本相同的適配器,但對於完美工作的不同數據。另外,ViewHolder是一個靜態類,它只是任何有人想知道的任何視圖的容器類(必須根據編碼風格使用它)。
這是一個漂亮的區別:) – gunar
嗯非常有趣的差異。甚至沒有想到'getRoomNumber()'的int返回導致它搜索資源。謝謝:) – jhorvat
不客氣 – Blackbelt