所以我的listview有一个多维数组,它构造如下: String[][] listControls = {
{"Shutdown Host","10"},
{"Close Connection","1"}};假设第一个String是我要在列表视图中显示的文本,另一个是要通过套接字发送的id /消息(假设它是一个秘密值)。我像这样编写了适配器: ArrayAdapter adapter = new ArrayAdapter<String>(this,R.layout.layout_listview);
for(int i = 0; i < listControls.length; i++) {
adapter.add(listControls[i][0]);
}
listView = (ListView) findViewById(R.id.controls_listView);
listView.setAdapter(adapter);
listView.setClickable(true);我构建了一个项目的点击监听器:listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object obj = listView.getItemAtPosition(position);
//What should I add here? to get specific value from the array?
//Integer cmdId = Integer.parseInt( ... );
}
});从点击监听器,我想得到另一个值,例如,如果我在列表视图中单击“关闭连接”,我想从中获取“1”值并将其放入变量中。在此先感谢您的帮助。
2 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
你能做的是
@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) { String value = listControls[position][1] }
这当然只有在您有权访问listControls时才有效。如果没有,我会选择创建一个对象SomethingWithCode(String text,Int code)[或只是在kotlin中配对]并创建一个自定义适配器。
希望这可以帮助!
此外,如果你总是只传递两个值,你可能不需要多维数组(请参阅带有string和int参数的对象)
添加回答
举报
0/150
提交
取消