Android 返回列表视图中实际标签以外的内容

Android 返回列表视图中实际标签以外的内容,android,sqlite,android-listview,Android,Sqlite,Android Listview,如果我有一个用字符串数组填充的listview,请说: Mazda Renault Holden Audi 当我想点击一个项目,而不是返回字符串“马自达”,我宁愿返回一个相关的数字,如马自达返回0,雷诺返回1等 这是可能的吗?我会看到查询 SQLite DB只使用int而不是字符串 谢谢, M在您的listview中使用了适配器,因此在该方法中也已经存在位置变量。如果您在logcat中打印它,它将获得列表项的每个时间位置。您需要在数组中轻松处理它 protected void onListIt

如果我有一个用字符串数组填充的listview,请说:

Mazda
Renault
Holden
Audi
当我想点击一个项目,而不是返回字符串“马自达”,我宁愿返回一个相关的数字,如马自达返回0,雷诺返回1等

这是可能的吗?我会看到查询 SQLite DB只使用int而不是字符串

谢谢,
M

在您的listview中使用了适配器,因此在该方法中也已经存在位置变量。如果您在
logcat
中打印它,它将获得列表项的每个时间位置。您需要在数组中轻松处理它

protected void onListItemClick(ListView l, View v, int position, long id) {

    super.onListItemClick(l, v, position, id);
    Object o = this.getListAdapter().getItem(position);
    String pen = o.toString();
    Toast.makeText(this, "You have chosen the pen: " + " " + pen, Toast.LENGTH_LONG).show();
}

您可以执行以下操作:

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  String[] MY_CARS = new STRING[] { Mazda, Renault, Holden, Audi };

  setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, MY_CARS));

  ListView lv = (ListView)findViewById(R.id.MyListView);

  lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
    int position, long id) {

      // When clicked, show a toast with the TextView text
      Toast.makeText(getApplicationContext(), "Item at Position "+pos+" was clicked. This corresponds to "+MY_CARS[pos],
      Toast.LENGTH_SHORT).show();

    }
  });
}
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
String[]MY_CARS=新字符串[]{马自达、雷诺、霍顿、奥迪};
setListAdapter(新的ArrayAdapter(this,R.layout.list_项,MY_CARS));
ListView lv=(ListView)findViewById(R.id.MyListView);
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//单击后,显示带有文本视图文本的祝酒词
Toast.makeText(getApplicationContext(),单击了位置“+pos+”处的项目。这对应于“+MY_CARS[pos]”,
吐司。长度(短)。show();
}
});
}
这将返回单击列表中项目的位置,该位置应为数组的索引


我不确定你是否会在db性能上得到显著的提高

您可以使用array.index方法获取位置