单击列表视图项时从 SQLite 数据库中获取行 ID
Fetching row id from SQLite database on clicking a listview item
我已经使用 ArrayAdapter 从数据库填充列表视图,我想在单击项目时获取列表项目的数据库行 ID。我已经搜索了很多小时,但我无法得到答案,因为我是初学者。
这是我的 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.当你点击列表视图的项目时,你会得到id。
2. 从该索引中获取字符串值并调用一个方法,将收集的字符串作为参数发送,并在该方法中触发查询,如
return db.rawQuery("select row_id from your_tableName where string_columnName="+your_passed_string+";",null);
- 收集光标中的 row_id 并将其转换为 int 值,然后在屏幕上显示。
- 完成。
我已经使用 ArrayAdapter 从数据库填充列表视图,我想在单击项目时获取列表项目的数据库行 ID。我已经搜索了很多小时,但我无法得到答案,因为我是初学者。
这是我的 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.当你点击列表视图的项目时,你会得到id。
2. 从该索引中获取字符串值并调用一个方法,将收集的字符串作为参数发送,并在该方法中触发查询,如
return db.rawQuery("select row_id from your_tableName where string_columnName="+your_passed_string+";",null);
- 收集光标中的 row_id 并将其转换为 int 值,然后在屏幕上显示。
- 完成。