SQL 데이터베이스에서 데이터를 검색하려고했습니다. 데이터를 검색하기 전에 사용자는 스피너에서 이름을 선택해야합니다. 여기 스피너 값 :
String name[] = {"Sandking","Bristleback","Sven","Tiny","Undying", "Naix","Weaver","Spectre","Lich"};
다음으로 SQLquery의 전제 조건에 대해 스피너에서 선택한 이름을 사용하고 싶습니다. 선택한 이름을 입력하고 다음 방법을 사용합니다.
String nameSelected = spinner1.getSelectedItem().toString();
마지막으로 SQLquery에 해당 문자열 ( "nameSelected")을 넣으려고했습니다.
public List<String> getAllRecord(String nameSelected) {
List<String> namagambar = new ArrayList<String>();
String selectQuery = "SELECT * FROM " + TABLE_RECORD + " WHERE "
+ HERO_NAME +"="+nameSelected;
database = dbHelper.getReadableDatabase();
cursor = database.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
namagambar.add(cursor.getString(5));
} while (cursor.moveToNext());
}
database.close();
return namagambar;
}
그러나 데이터베이스의 데이터는 표시되지 않았습니다. 문자열 이름을 입력하는 실수를 한 것 같습니다 .Selected, 내 실수와 수정 방법을 말할 수있는 사람이 있습니까?
내 활동은 다음과 같습니다.
public class help_activity extends Activity implements OnClickListener{
Spinner spinner1;
SQLiteConnector sqlConnect;
ListView lvUsers;
Button b1;
String colors[] = {"Sandking","Bristleback","Sven","Tiny","Undying", "Naix","Weaver","Spectre","Lich"};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_help);
lvUsers = (ListView) findViewById(R.id.listView1);
b1 = (Button) findViewById(R.id.btn1);
sqlConnect = new SQLiteConnector(this);
addListenerOnSpinnerItemSelection();
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, sqlConnect.getAllRecord(null));
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String nameSelected = spinner1.getSelectedItem().toString();
if (nameSelected.equals("Sandking")) {
lvUsers.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
// TODO Auto-generated method stub
}
});
}
public void addListenerOnSpinnerItemSelection() {
spinner1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item,colors );
spinner1.setAdapter(spinnerArrayAdapter);
}
@Override
public void onClick(View v) {
/*if (v == b1) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, sqlConnect.getAllRecord());
lvUsers.setAdapter(adapter);
*/
}
}
문자열 매개 변수는 작은 따옴표로 묶어야합니다.
어쨌든 Android의 매개 변수 빙잉을 활용하여 그렇게 할 수 있습니다.
이것을 변경
String selectQuery = "SELECT * FROM " + TABLE_RECORD + " WHERE "
+ HERO_NAME +"="+nameSelected;
database = dbHelper.getReadableDatabase();
cursor = database.rawQuery(selectQuery, null);
에
String selectQuery = "SELECT * FROM " + TABLE_RECORD + " WHERE " +
HERO_NAME +" = ?";
database = dbHelper.getReadableDatabase();
cursor = database.rawQuery(selectQuery, new String[]{nameSelected});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다