|
|
|
Android SQLite ขอความช่วยเหลืออีกเรื่องครับผม เกี่ยวกับการค้นหา Search ข้อมูล |
|
|
|
|
|
|
|
ปัญหาตอนนี้คือ เมื่อค้นหาข้อมูลไปแล้ว เจอข้อมูล แล้วกดเข้าไปในข่อมูลตั้วนั้น แต่ค่าที่ได้กลับไปเป็นของข้อมูลอีกตัวหนึ่ง
ซึ้งเป็นตำแหน่งของข้อมูลก่อนค้นหา
จากเดิมผมเช็คจากตัวแปร int ที่เป็นลำดับแถว
อยากให้เปลี่ยนมาเช็คจาก String ต้องทำยังไงหรอครับ
Code (Android-Java)
public void onResume() {
super.onResume();
mHelper = new FoodDBThai(this);
mDB = mHelper.getWritableDatabase();
mCursor = mDB.rawQuery("SELECT * FROM " + FoodDBThai.TABLE_NAME, null);
listFood = (ListView)findViewById(R.id.listFood1);
listFood.setAdapter(updateListView());
listFood.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
mCursor.moveToPosition(arg2);
String id = mCursor.getString(mCursor.getColumnIndex(FoodDBThai.COL_ID));
String name = mCursor.getString(mCursor.getColumnIndex(FoodDBThai.COL_NAME));
String calories = mCursor.getString(mCursor.getColumnIndex(FoodDBThai.COL_CAL));
String number = mCursor.getString(mCursor.getColumnIndex(FoodDBThai.COL_NUM));
Intent intent = new Intent(getApplicationContext(), FoodUpdate.class);
intent.putExtra("ID", id);
intent.putExtra("NAME", name);
intent.putExtra("CAL", calories);
intent.putExtra("NUM", number);
startActivity(intent);
}
});
}
public ArrayAdapter<String> updateListView() {
arr_list = new ArrayList<String>();
src_list = new ArrayList<String>();
mCursor.moveToFirst();
while ( !mCursor.isAfterLast() ){
arr_list.add(mCursor.getString(mCursor.getColumnIndex(FoodDBThai.COL_NAME)) + "\n"
+ mCursor.getString(mCursor.getColumnIndex(FoodDBThai.COL_CAL)) + " kcal" + "\t\t\t\t"
+ mCursor.getString(mCursor.getColumnIndex(FoodDBThai.COL_NUM)));
mCursor.moveToNext();
listFood = (ListView)findViewById(R.id.listFood1);
listFood.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1
, arr_list));
editText1 = (EditText)findViewById(R.id.editText1);
editText1.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable arg0) {
ArrayList<String> src_list = new ArrayList<String>();
int textlength = editText1.getText().length();
for(int i = 0 ; i < arr_list.size() ; i++){
try {
if(editText1.getText().toString()
.equalsIgnoreCase(arr_list.get(i)
.subSequence(0, textlength)
.toString())){
src_list.add(arr_list.get(i));
}
} catch (Exception e) { }
}
listFood.setAdapter(new ArrayAdapter(SearchFood.this
, android.R.layout.simple_list_item_1, src_list));
}
public void beforeTextChanged(CharSequence s, int start
, int count, int after) { }
public void onTextChanged(CharSequence s, int start
, int before, int count) { }
});
}
Tag : Mobile, Android, JAVA, Mobile
|
ประวัติการแก้ไข 2015-02-21 18:51:38 2015-02-21 20:40:32
|
|
|
|
|
Date :
2015-02-21 18:50:57 |
By :
KIKEE |
View :
1205 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันที่จริงควรจะเก็บ Result ให้ได้หมดก่อนแล้วค่อยนำไป Mapping กับ Adapter น่ะครับ
ศึกษาจากบทความนี้ครับ
Android Read Show Data from SQLite Database (Android SQLite)
|
|
|
|
|
Date :
2015-02-22 10:24:30 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|