2016-04-11 2 views
2

ビューモデルにカスタムArrayAdapterを設定する方法がわからず、ビューモデルにリスナーを追加する方法があります。データバインディングのリストビューに問題があります。を追加します。誰かがこれを行う方法を示すことができますか?インターネットはこれに関する情報がほとんどありません。Java Androidのデータバインディングリストビュー

答えて

1

ListViewのアダプタを設定するだけです。 R.id.listviewは、レイアウトで定義されているListViewと、行に必要なレイアウトをR.layout.listviewrowで参照する必要があります。さらに、onItemClickListenerの新しいインスタンスをListViewに追加します。

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; 
} 
+0

OK:

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 } }); 

アダプタ自体は、次のようになります。わかりました。 – zeed94