1

我有一个ListActivity点击时,我得到点击的显示文本。有没有更好的方法,比如使用唯一标识符?

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="adjustments">
        <item>Item 1</item>
        <item>Item 2</item>
        <item>Item 3</item>
    </string-array>
</resources>



然后我将其作为代码:

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    String[] adjustments = getResources().getStringArray(R.array.adjustments);
    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, adjustments));
    getListView().setTextFilterEnabled(true);
}

protected void onListItemClick(ListView l, View v, int position, long id){
    super.onListItemClick(l, v, position, id);
    Intent intent = new Intent();
    Bundle bundle = new Bundle();
    try{
        bundle.putString("adjustment", l.getItemAtPosition(position).toString());
        intent.putExtras(bundle);
        setResult(RESULT_OK, intent);
    }catch(Exception e){
        setResult(RESULT_CANCELED, intent);
    }
    finish();
}

然后我想做的是给每个项目一个唯一的标识符,而不是让它的文本来决定下一步做什么。有可能吗?每个选项在使用反射单击后都会调用相同的方法,因此如果我可以调用该方法一次而不是执行 100 条 if/else 语句来检查单击了什么,那将非常有帮助!

4

2 回答 2

0

你可以使用这个位置。这些项目每次都以相同的顺序排列,因此您可以根据传入的位置参数决定要做什么onListItemClick

您的另一个选择是定义一个自定义适配器,为每个适配器提供一个唯一的 id,但如果列表没有太大变化,该位置可能同样有效。

于 2012-11-06T16:34:18.797 回答
0

我所做的是使用返回文本来调用使用反射的类。因此,如果返回文本是,Adjust RGB我将删除空格并AdjustRGB基于实现启动类和运行函数。

于 2012-11-13T16:04:08.913 回答