【问题标题】:Java Android Data Binding ListViewJava Android 数据绑定 ListView
【发布时间】:2016-08-01 08:09:21
【问题描述】:

我对数据绑定中的列表视图有疑问,因为我不知道如何在视图模型中设置自定义ArrayAdapter,以及如何在视图模型中添加onItemClick 侦听器。有人可以展示如何做到这一点?互联网上关于这方面的信息真的很少。

【问题讨论】:

    标签: java android listview binding


    【解决方案1】:

    只需为 ListView 设置适配器。 R.id.listview 显然必须引用您在布局中定义的 ListView,R.layout.listviewrow 必须引用行应该具有的布局。此外,在 ListView 中添加一个新的 onItemClickListener 实例。

    MyCustomArrayAdapter adapter = new MyCustomArrayAdapter(getActivity(), R.layout.listviewrow);
    ListView lv = (ListView) getActivity().findViewById(R.id.listview);
    lv.setAdapter(adapter);
    
    lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
               //perform desired action here
            }
        } );
    

    适配器本身应该如下所示:

    public class MyCustomArrayAdapter extends ArrayAdapter<Item> {
    
        public MyCustomArrayAdapter(Context context, int resource) {
            super(context, resource);
        }
    
        public MyCustomArrayAdapter(Context context, int resource, List<Item> items) {
            super(context, resource, items);
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
    
            View v = convertView;
    
            if (v == null) {
                LayoutInflater vi;
                vi = LayoutInflater.from(getContext());
                v = vi.inflate(resource, null);
            }
    
            Item item = getItem(position);
    
            if (item != null) {
                TextView tvFirstName = (TextView) v.findViewById(R.id.firstName);
                TextView tvLastName = (TextView) v.findViewById(R.id.lastName);
    
            if (tvFirstName != null) {
                tvFirstName.setText(item.getFirstName());
            }
    
            if (tvLastName != null) {
                tvLastName.setText(item.getLastName);
            }
        }
    
        return v;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 2011-02-07
      • 1970-01-01
      • 2011-04-30
      • 2018-08-14
      相关资源
      最近更新 更多