点击后我有一个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语句来检查点击的内容会非常有用!
答案 0 :(得分:0)
您可以使用该职位。这些项目每次都以相同的顺序排列,因此您可以根据传递到onListItemClick
的位置参数来决定要执行的操作。
您的另一个选择是定义一个自定义适配器,为每个适配器提供一个唯一的ID,但如果列表没有太大变化,位置也可能正常工作。
答案 1 :(得分:0)
我所做的是使用返回文本使用Reflection调用类。因此,如果返回文本为Adjust RGB
,我将删除空格并启动类AdjustRGB
并根据实现运行函数。