Извлечение идентификатора строки из базы данных SQLite при нажатии на элемент списка - PullRequest
0 голосов
/ 06 января 2019

Я заполнил просмотр списка из базы данных, используя ArrayAdapter, я хочу получить идентификатор строки базы данных элемента списка, когда я нажимаю на элемент. Я искал много часов, но я не мог получить ответ, потому что я новичок.

вот мой main.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView listView=findViewById(R.id.quote_list);
        registerForContextMenu(listView);
        DatabaseAccess datac= DatabaseAccess.getInstance(getApplicationContext());
        datac.open();
        final ArrayList<String> thelist = new ArrayList<>();
        Cursor data=datac.getquotes();
        while(data.moveToNext()){
            thelist.add(data.getString(2));
           ListAdapter listAdapter = new ArrayAdapter<>(this,R.layout.textcenter,R.id.textitem,thelist);
            listView.setAdapter(listAdapter);
        } 
    }



    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater menuInflater=getMenuInflater();
        menuInflater.inflate(R.menu.my_contextual_menu,menu);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterView.AdapterContextMenuInfo info =(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
        return super.onContextItemSelected(item);
    }
}

1 Ответ

0 голосов
/ 06 января 2019

Попробуйте таким образом,
1. При нажатии на элемент списка, вы получите идентификатор.
2. получить строковое значение из этого индекса и вызвать метод, где отправить собранную строку в качестве параметра и запустить запрос в этом методе, как

return db.rawQuery("select row_id from your_tableName where string_columnName="+your_passed_string+";",null);
  1. Соберите row_id в вашем курсоре и преобразуйте его в значение типа int, затем покажите его на экране.
  2. Готово.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...