0
我使用適配器創建了一個列表視圖。該列表視圖包含表格中特定字段的不同值。現在,當點擊列表視圖項目時,它應該檢索具有該特定數據的標識的所有項目。我設法從列表視圖中獲取數據,但是當項目沒有正確提取時。點擊列表視圖項時檢索到的值
row.xml
<ImageView
android:id="@+id/img"
android:src="@mipmap/ic_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/txtid"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="sd"
/>
Tab2.java
ListView list;
final ArrayList<HashMap<String, String>> mylist;
ListAdapter adapter;
HashMap<String, String> map2;
final TextView a1;
list = (ListView) v.findViewById(R.id.listView2);
a1 = (TextView) v.findViewById(R.id.txt1);
mylist = new ArrayList<HashMap<String, String>>();
DatabaseHandler db = new DatabaseHandler(getActivity());
final List<Product> sent = db.getSentProducts();
for (Product s : sent) {
map2 = new HashMap<String, String>();
map2.put("txtid", s.getMsg_id());
mylist.add(map2);
Log.d("msgid", s.getMsg_id());
}
for (Product s : sent) {
}
try {
adapter = new SimpleAdapter(getActivity(),mylist,R.layout.sent_row, new String[]{"txtid"}, new int[]{R.id.txtid});
list.setAdapter(adapter);
} catch (Exception e) {
}
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
TextView a = (TextView)v.findViewById(R.id.txtid);
String content1 = a.getText().toString();
DatabaseHandler db = new DatabaseHandler(getActivity());
List<Product> sentinfo = db.getSentProductInfo(content1);
for (Product si : sentinfo){
Log.d("asdsd", si.getStorCode()+" "+si.getCode()+" "+si.getBstock()+" "+si.getDeliveries()+" "+si.getSpoilage()+" "+ si.getEstock()+" ");
}
return true;
}
});
return v;
}
分貝
的Android UI
當我在ListView點擊20150824070159,它應該在表中提取兩行,但是,它只能取一個,這是其他ID,20150820162104的數據。
我將如何回答這個問題?
ListView職位從0開始couting,你確定你得到正確的價值?嘗試將其他項目添加到列表中,並查看它是否始終獲得高於所點擊值的值,或者是否總是返回第一個值。 – George
我嘗試添加其他值,但結果仍然相同。它總是返回第一個。 – user5083862