Android - กรองข้อมูลจาก listview เมื่อคลิกที่รายการนั้น ก็ให้แสดงข้อมูลของรายการที่คลิกบน AlertDialog แต่ค่าที่แสดงออกมามันไม่ใช่ค่าล่าสุดที่กรองได้
กรองข้อมูลจาก listview เสร็จแล้ว เมื่อคลิกที่รายการนั้น ก็ให้แสดงข้อมูลของรายการที่คลิกบน AlertDialog แต่ค่าที่แสดงออกมามันไม่ใช่ค่าล่าสุดที่กรองได้ มันขึ้นโชว์แค่รายการตอนแรกก่อนกรองเท่านั้น แต่พอกรองเสร็จ ค่ามันก็ยังเป็นอย่างเดิม
เช่น ตอนแรกยังไม่ได้กรอง มีรายการดังนี้
xxx1
xxx2
xxx3
พอกรองไป xxx4 เมื่อเจอ xxx4 คลิกขึ้นมามันก็ปรากฎบน AlertDialog ว่า xxx1 ทั้งๆที่มันต้องเป็น xxx4
ช่วยทีนะครับ
EditText inputSearch = (EditText) findViewById(R.id.inputSearch);
inputSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
ShowFoodActivity.this.sAdap.getFilter().filter(cs);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
ListView1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> myAdapter, View myView, int position, long mylng) {
sFoodName = FoodList.get(position).get("food_calorie_name").toString();
Toast.makeText(getApplicationContext(), ""+sFoodName, Toast.LENGTH_LONG).show();
}
});
}
});
// ListView OnClick
ListView1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> myAdapter, View myView, int position, long mylng) {
sFoodName = FoodList.get(position).get("food_calorie_name").toString();
sFoodKcal = FoodList.get(position).get("food_calorie_kcal").toString();
AlertDialog.Builder alert = new AlertDialog.Builder(ShowFoodActivity.this);
final NumberPicker np = new NumberPicker(ShowFoodActivity.this);
np.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
np.setMinValue(1);
np.setMaxValue(10);
np.setWrapSelectorWheel(false);
alert.setIcon(android.R.drawable.btn_star_big_on);
alert.setTitle("เพิ่มรายการ");
alert.setView(np);
alert.setMessage(sFoodName + " " + "\n"
+ "ปริมาณแคลอรี่ : " + sFoodKcal + " Kcal" + "\n"
+ "ระบุจำนวน : ");
alert.setNegativeButton("บันทึก", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
final int Kcal = Integer.parseInt(sFoodKcal);
sTotal = Kcal * np.getValue();
sNum = np.getValue();
SaveData();
}
});
alert.setPositiveButton("ยกเลิก", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alert.show();
}
});
Tag : Mobile, Android, JAVA
Date :
2015-02-27 20:46:19
By :
l3ios
View :
1078
Reply :
3
เข้าใจว่าค่าที่กรองได้ มันไม่ได้ไป Map Adapter กับ ListView ใหม่น่ะครับ มันเลยยังจำ index ของค่าที่ถูก Map ไว้ก่อนหน้านี้
Date :
2015-02-28 15:45:15
By :
mr.win
คิดว่าน่าจะ ประมาณนั้นครับ
Date :
2015-03-01 07:48:12
By :
mr.win
Load balance : Server 04