如何从列表视图中获取多维数组的值?

所以我的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”值并将其放入变量中。在此先感谢您的帮助。


回首忆惘然
浏览 493回答 2
2回答

守着星空守着你

你能做的是@Overridepublic&nbsp;void&nbsp;onItemClick(AdapterView<?>&nbsp;parent,&nbsp;View&nbsp;view,&nbsp;int&nbsp;position,&nbsp;long&nbsp;id)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;value&nbsp;=&nbsp;listControls[position][1]&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}这当然只有在您有权访问listControls时才有效。如果没有,我会选择创建一个对象SomethingWithCode(String text,Int code)[或只是在kotlin中配对]并创建一个自定义适配器。希望这可以帮助!此外,如果你总是只传递两个值,你可能不需要多维数组(请参阅带有string和int参数的对象)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java