Добрый день, всем!android - Отображение элемента, нажатого на Listview, заполненного SQLite
Я новичок в программировании на Android, борясь с тем, как подключить _id базы данных к адаптеру listview. Его почти потребляют в целом, пытаясь понять, как это сделать.
Вот код списка:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
setContentView(R.layout.activity_dictionarylist);
filterText = (EditText)findViewById(R.id.txtsearch);
ListView itemList = (ListView)findViewById(R.id.listView);
DBHelper dbHelper = new DBHelper(Dictionarylist.this);
String[] terms = dbHelper.dictionaryWords();
listAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, android.R.id.text1,terms);
itemList.setAdapter(listAdapter);
itemList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), "Position " + position, Toast.LENGTH_LONG).show();
Intent intent = new Intent(Dictionarylist.this, DictionaryActvity.class);
intent.putExtra("DICTIONARY_ID", position);
startActivity(intent);
}
});
filterText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Dictionarylist.this.listAdapter.getFilter().filter(s);
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
Вот код для Helper базы данных:
public class DBHelper extends DBCon {
public DBHelper(Context context){
super(context);
}
public String[] dictionaryWords(){
String query = "Select * from main_dictionary";
Cursor cursor = this.getdbconnection().rawQuery(query, null);
ArrayList<String> wordterms = new ArrayList<String>();
if(cursor.moveToFirst()){
do{
String word = cursor.getString(cursor.getColumnIndexOrThrow("main_word"));
wordterms.add(word);
}
while (cursor.moveToNext());
}
cursor.close();
String[] dictionaryWords = new String[wordterms.size()];
dictionaryWords = wordterms.toArray(dictionaryWords);
return dictionaryWords;
}
public Quizzer getQuizById(int quizId){
Quizzer quizzer = null;
String query = "select * from main_dictionary where _id =" + quizId;
Cursor cursor = this.getdbconnection().rawQuery(query, null);
if(cursor.moveToFirst()){
do{
String word = cursor.getString(cursor.getColumnIndexOrThrow("main_word"));
String tagdef = cursor.getString(cursor.getColumnIndexOrThrow("tag_definition"));
String engdef = cursor.getString(cursor.getColumnIndexOrThrow("eng_defintion"));
String sample = cursor.getString(cursor.getColumnIndexOrThrow("example"));
quizzer = new Quizzer(word, tagdef, engdef, sample);
}
while(cursor.moveToNext());
}
cursor.close();
return quizzer;
}
Я был бы признателен за любую помощь.
Где можно получить 'attach _id' от db? –
Nope. Я хотел бы добавить _id базы данных в список, поэтому, когда мы нажимаем элемент в списке, он должен отображать информацию из _id базы данных. –
Это приложение, к слову, словарь. –