我有一個ListView
我在哪裏存儲一些URL和我使用一個ArrayList這是該類型ArrayList<HashMap<String,String>>
的加載列表視圖中的內容。我正在嘗試使用下面的代碼片段來處理這個列表的點擊。Android的 - ListView的點擊給出索引越界異常
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
System.out.println("List Clicked..." + pos);
System.out.println("URL: " + listView.getItemAtPosition(pos).toString());
}
});
第一SOP正確執行,但第二個打印語句是給我下面的錯誤 ERROR/AndroidRuntime(382): java.lang.IndexOutOfBoundsException: Invalid location 0, size is 0
這裏是我的適配器的getView()
@Override
public View getView(int position, View arg1, ViewGroup arg2) {
View v = arg1;
if (v == null)
{
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list_row, null);
}
t1=(TextView) v.findViewById(R.id.text1);
HashMap<String, String> values = storedURLArrayList.get(position);
t1.setText(values.get("value"));
return v;
}
請幫助。
您使用自定義適配器還是自定義ListView ...? – ngesh
我認爲listView.getItemAtPosition(pos)會給你一個特定的HashMap位於被點擊的位置,所以這可能是一個問題。我不確定但是.. –
您能否請您添加一些關於您的問題的更多代碼和解釋? –