如何獲取選中的項目ID(自定義ID,而不是所選項目的位置或名稱 - 在我的情況下,我需要檢索訂單ID)在android中有多個選擇的自定義列表視圖。 我有訂單名稱和訂單ID從JSON和它填充自定義列表視圖中,在自定義列表視圖中我有文本視圖和複選框,但如何獲取選定/檢查訂單的Orderid's。如何獲取自定義列表視圖中的檢查項目ID在android中的多個選擇
我有一個按鈕,當我按一下按鈕,我需要找回ID沒有名稱或位置,在我的情況,我需要訂單ID進行檢索
如何獲取選中的項目ID(自定義ID,而不是所選項目的位置或名稱 - 在我的情況下,我需要檢索訂單ID)在android中有多個選擇的自定義列表視圖。 我有訂單名稱和訂單ID從JSON和它填充自定義列表視圖中,在自定義列表視圖中我有文本視圖和複選框,但如何獲取選定/檢查訂單的Orderid's。如何獲取自定義列表視圖中的檢查項目ID在android中的多個選擇
我有一個按鈕,當我按一下按鈕,我需要找回ID沒有名稱或位置,在我的情況,我需要訂單ID進行檢索
我解決,並且通過下面的代碼得到的OrderId,這個工作對我來說,我可以取回我傳遞給列表中的自定義ORDERID
int isSelectedOrderNumber=0;
mOpenOrdersSelected = new ArrayList<OpenOrders>();
StringBuffer sb = new StringBuffer();
Iterator<OpenOrders> it = mOpenOrders.iterator();
while(it.hasNext())
{
OpenOrders objOpenOrders = it.next();
//Do something with objOpenOrders
if (objOpenOrders.isSelected()) {
isSelectedOrderNumber++;
mOpenOrdersSelected.add(new OpenOrders(objOpenOrders.getOrderID(),objOpenOrders.getOrderName()));
sb.append(objOpenOrders.getOrderID());
sb.append(",");
}
}
//Below Condition Will Check the selected Items With parameter passed "mMAX_ORDERS_TOBEPICKED"
if(isSelectedOrderNumber<1){
ShowErrorDialog("Please Select atleast One order");
return;
}
if(isSelectedOrderNumber>mMAX_ORDERS_TOBEPICKED){
ShowErrorDialog(" Select Maximum of "+mMAX_ORDERS_TOBEPICKED+ " Orders only to process");
return;
}
Log.d(MainActivity.class.getSimpleName(), "cheked Order Items: " +sb);
Toast.makeText(getApplicationContext(), "cheked Order Items id:" +sb, Toast.LENGTH_LONG).show();
你只需要調用ListView.getCheckedItemIds()
。它會返回一個長的[]與所有檢查ID。 也有ListView.getCheckedItemPositions()
這將給你所有檢查的位置。
請確保您在onCreate()
中設置了ListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)
或設置了您的視圖(或在layout xml中)。
爲了讓你只需要做這個檢查的值:
SparseBooleanArray checked = mListView.getCheckedItemPositions();
for (int i = 0; i < checked.size(); i++) {
if (checked.valueAt(i)) {
int pos = checked.keyAt(i);
Object o = mListView.getAdapter().getItem(pos);
// do something with your item. print it, cast it, add it to a list, whatever..
}
傑裏,設置您的訂單對象作爲標籤具有選擇事件[複選框,TextView的,行觀點】,當用戶選擇視圖您可以從標籤中獲得選定的訂單對象,您可以獲得該對象的任何成員(訂單)。爲前。
訂單對象
Order {
int id;
String name;
boolean isSelected;
//add getters and setters
}
void getview(...) {
View v = //inflate view
CheckBox cb = (CheckBox) v.findViewById(..);
cb.setTag(yourlist.get(position));
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
((Order) buttonView.getTag()).setSelected(isChecked);
}
});
}
我試過,但它返回一些字符串 像這樣嘗試: \t long [] checkedID = mListView.getCheckedItemIds(); \t //將長轉換爲字符串 \t String strcheckedID = String.valueOf(checkedID); \t // mListView.getCheckedItemIds();\t Toast.makeText(getApplicationContext(),「Selected Items ::」+ \t strcheckedID,Toast.LENGTH_LONG).show(); –
如果它定義爲返回一個long [],它如何返回字符串? – flx
@JerryAbraham:我真的不明白,你在烤麪包時想做什麼。你想要達到什麼目的? – flx