我有一個從數據庫填充的列表視圖,其中有22個項目。當我將數據庫中的項目綁定到listView時,所有項目都顯示在列表中。當我選擇列表下方的項目時,我的ListView得到了nullpointerException
但這裏是問題..我只能從listView中選擇前7項。 當我嘗試選擇視圖中的第8至第22項時,我得到一個nullpointerException。
有誰知道爲什麼以及如何解決這個問題?
我的代碼在列表中選擇項目時:
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//ListView lv = (ListView) arg0;
TextView tv = (TextView) ((ListView) findViewById(R.id.list_view)).getChildAt(arg2);
//error here \/
if (tv == null) {
Log.v("TextView", "Null");
}
String s = tv.getText().toString();
_listViewPostion = arg2;
Toast.makeText(CustomerPick.this, "Du valde: " + s, arg2).show();
}
});
代碼綁定值的ListView時:
public ArrayAdapter<Customer> BindValues(Context context){
ArrayAdapter<Customer> adapter = null;
openDataBase(true);
try{
List<Customer> list = new ArrayList<Customer>();
Cursor cursor = getCustomers();
if (cursor.moveToFirst())
{
do
{
list.add(new Customer(cursor.getInt(0), cursor.getString(1)));
}
while (cursor.moveToNext());
}
_db.close();
Customer[] customers = (Customer []) list.toArray(new Customer[list.size()]);
Log.v("PO's",String.valueOf(customers.length));
adapter = new ArrayAdapter<Customer>(context, android.R.layout.simple_list_item_single_choice, customers);
}
catch(Exception e)
{
Log.v("Error", e.toString());
}
finally{
close();
}
return adapter;
}
你爲什麼手動得到參考'TextView'在'onItemClick()'?只需使用'arg1'。 – Magicode