首页 > 解决方案 > 将 int 数组绑定到列表视图

问题描述

我在 android studio 中设置了一个带有 arrayadapter 的列表视图。很基本的东西。我可以保存和删除 listview id,并设置了一个 onItemClickListener 来检索 id 字符串。但是我现在要做的是为每个项目绑定/保存一个 int 数组。例如:

pos 0, id "Jesus" -> int 值:"10, 13, 256, 0, 57, ..." pos 1, id "Moses" -> int 值:"80, 70, 60, ..."等等。

int 数组不必显示在列表视图中。我要做的就是将它绑定到列表视图项。然后,通过单击一个项目,检索 int 数组。有人对如何实现这一点有提示吗?

到目前为止,这是我的代码(正如我所说的非常基本):

    etPresetName = (EditText) findViewById(R.id.etPresetName);

    lvPresets = (ListView) findViewById(R.id.lvPresets);
    lvPresets.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            String str = lvPresets.getItemAtPosition(i).toString();
            etPresetName.setText(str);
        }
    });



    alPresets = new ArrayList<String>();
    PresetsAdapter = new ArrayAdapter<String>(Presets.this, android.R.layout.simple_list_item_1,
            alPresets);
    lvPresets.setAdapter(PresetClassAdapter);

标签: androidlistview

解决方案


创建一个自定义类来保存您的数据

class MyClass{
    String title;
    int[] array; 
}

使用您的数据类创建自定义 ArrayAdapter。

public class MyClassAdapter extends ArrayAdapter<MyClass> {

    public MyClassAdapter(Context context, int textViewResourceId, 
        ArrayList<MyClass> items) {
        super(context, textViewResourceId, items);
        .........
    }

    public View getView(int position, View convertView, ViewGroup parent){
         .........
         Item item = item.get(position)
    }
}

现在在您的 onClick 侦听器上,您可以从列表中获取带有位置的 int 数组。


推荐阅读