2017-07-11 5 views
0

リストビューに2つの列を追加して最初の列の値を取得する方法。リストビューに2つの列を追加する方法

私は選択からデータを受け取るアダプタがあり、このデータはリストビューに追加されます。

私は2つの列であることをリストビューをしたいと思い、私は行をクリックしたときに、それは

は私のリストビューはこのように移入され、最初の列の値がとり:

adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItemMultipleChoice, observacao); 
      lv.Adapter = adapter; 
      lv.ChoiceMode = ChoiceMode.Multiple; 
+0

カスタムアダプターを作成し、行を2つに分割するレイアウトを拡張します。 '' 'onBindViewHolder'''の中で、アダプターの各列にクリックリスナーを追加し、それを処理する必要がある人にイベントを委譲します。 –

+0

@humble学生、あなたは私を渡す例がありますか? – mba

+0

ListViewカスタムアダプターを探し、列を実行するためのレイアウト(線形または相対)を使用します。ドンは準備が整っている例があります。これは非常に基本的なテーマです。ウェブ上でその例を見つけるのは非常に簡単です –

答えて

0

公式がありますがXamarin Android用のCreating Custom Row Layoutsについてのドキュメント

ListViewのカスタムレイアウトを作成してカスタムアダプタを使用してください。

View view = convertView; 
if (view == null) 
    view = context.LayoutInflater.Inflate(Android.Resource.Layout.YourCustomLayout, null); 

は、私が2列であることをリストビューをしたいと思い、私は行をクリックしたときに、それはの値をとる:カスタムアダプタのGetView方法で

、あなたの行のレイアウトを膨らませることができます

:あなたの ListViewItemClickた場合には、最初の列

は、あなたが選択した項目の位置を取得することができます

private void MListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e) 
{ 
    var position = e.Position; 
} 

Listの関連項目を一致させるために位置を使用することができます。これはListViewに追加され、そこでデータを見つけることができます。

+0

返事をありがとう、私はこの例をananlisarに来た、彼の適応はnullに気づいただけ '。私の場合、私はデータベースから来る配列であるプレイヤーを使用しますが、このプレイヤーは1つのアイテムしか持たないので、私は望みます。 2つのアイテムを渡して表示します。 データベースからのデータの取得先を教えてください。これは私の疑いです。 – mba

+0

@RenatoLima、最初の質問では、何がnullであるのかわかりません。[公式デモ](https://developer.xamarin.com/samples/monodroid/CustomRowView/)をチェックしてください。 "私は2つのアイテムを渡したいと思っています"という質問に対しては、各行に対して独自のレイアウトを展開することができます。このレイアウトはアイテムを表示する2つのコントロールを持つことができ、 'GetView'メソッドでは、データを設定します。あなたの最後の質問については、使用しているデータベースによって異なりますが、これに直接関係しない他に新しい質問をしてください。 –

0

RecycleViewを使用し、GridLayoutMangerリファレンスを作成してRecycleviewをGridViewとして設定し、その中に列番号を指定する必要があります。

recyclerView.setLayoutManager(new GridLayoutManager(getContext(),2)); 
      adapter = new FoodAdapter(context,filteredList); 
      recyclerView.setAdapter(adapter); 
      adapter.notifyDataSetChanged(); 
+1

xmlでグリッドを作成する必要がありますか? RecyclerViewはリストビューを置き換えますか? context、filteredList、データベースから来るデータですか?そして、クリックされたアイテムを取得することは、リストビューの位置と同じですか? – mba

+0

グリッドレイアウトマネージャによって実行されるためグリッドXMLを作成する必要はありません。単一のエンティティ用に作成した行アイテムXMLを作成するだけで、グリッドレイアウトマネージャは実行時にグリッドを作成し、画面サイズによって調整され、リサイクルビューアダプターを作成する必要があります。 – farhana

+1

2つの行レイアウトと管理位置を使用するのではなく、1つの行項目を使用するほうが、recycleviewを単純に使用できます。あなたがListViewでそれをした場合、それは粗いスクロールの問題を作成します。 – farhana

関連する問題