Android 获取listview文本的ID或位置
当我使用ClickListener时,我的Listview与3个文本视图有问题Android 获取listview文本的ID或位置,android,listview,Android,Listview,当我使用ClickListener时,我的Listview与3个文本视图有问题 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ... } 我知道单击了哪个textvi
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
...
}
我知道单击了哪个textview,但无法获取id(数据库id)
我读了又试,但没有成功
有什么想法吗?单击项目侦听器中的int位置是您文本视图的位置,它从0,1,2,3开始
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(pos==0)
{
TextView txt = (TextView) findViewById(R.id.text_1);
txt.setText("abc");
}
}
});
listview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
如果(位置==0)
{
TextView txt=(TextView)findViewById(R.id.text_1);
txt.setText(“abc”);
}
}
});
如果我理解您的问题:
- 如果数据库表中有数据,只需创建如下类:
public class ListItem { //define variables here private long id; private String itemName; //define constructor and getters and setters here; }
onClickListener
界面提供给您的位置
,从适配器中获取项目
,然后根据需要获取id
我希望这是有意义的,并帮助您获得解决方案 您可以使用光标查找id,使用onClickListener返回的位置 (……)
使用适配器的onClick和positionfromGetView方法 intitemPosition=-1 现在在getView方法中设置itemPosition
@Override
public View getView(int position, View convertView, ViewGroup parent) {
itemPosition = position;
}
public void onClickMenge(View view) {
int viewId = view.getId();//ID of text view clicked
//Use itemPosition now
}
因此,您的ListView是一个自定义ListView。您使用自己的适配器吗?您是指textview id吗?首先获取项目位置:
ListView#getPositionForView
,然后获取项目id:adapter#getItemId
(我假设您使用的是CursorAdapter
,因此适配器#getItemId
返回正确的值)谢谢@pskink。太容易了!;-)当然,不客气
public class ListItem {
//define variables here
private long id;
private String itemName;
//define constructor and getters and setters here;
}
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String[] column = new String[]{"_id"};
Cursor cursor = db.query("name_of_table", column, null, null, null, null, null, null);
cursor.move(position+1);
long id = cursor.getLong(0);
private SQLiteDatabase db;
BDCore xDB = new BDCore(context);
db = xDB.getWritableDatabase();
@Override
public View getView(int position, View convertView, ViewGroup parent) {
itemPosition = position;
}
public void onClickMenge(View view) {
int viewId = view.getId();//ID of text view clicked
//Use itemPosition now
}