2017-05-30 25 views
0

このアプリケーションでは、リストビュー内にTextViewとチェックボックスがあります。リストビュー内からチェックボックスを選択することができません

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="8" 
    android:orientation="vertical" 
    android:id="@+id/linearLayout"> 

    <TextView 
     android:text="Name" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/deliverNumberTextView" 
     android:textSize="20dp" 
     android:textColor="@android:color/black" 
     android:padding="5dp" /> 

    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:id="@+id/listviewCheckbox"/> 

    </LinearLayout> 

私は、ListViewコントロールアダプタで、プログラムでのTextViewとチェックボックスの値を選択しようとしています:リストビューの列のXMLSは次のとおりです。 getViewメソッドで書かれているそのためのコードは、以下の()オーバーライド:

public override View GetView (int position, View convertView, ViewGroup parent) 
    { 
     View row = convertView; 

     if (row == null) 
     { 
      row = LayoutInflater.From (_context).Inflate (Resource.Layout.ListviewRow, null, false); 
     } 

     TextView deliverNumberTextView = (TextView) row.FindViewById (Resource.Id.deliverNumberTextView); 

     CheckBox listviewCheckbox = (CheckBox)row.FindViewById(Resource.Id.listviewCheckbox); 

     deliverNumberTextView.Text = _deliveries[position].DeliveryNumber; 
     listviewCheckbox.Visibility = ViewStates.Visible; 

     return row; 
    } 

問題は、このコードを実行した後、私はのTextViewの値を取得するということですが、私は、チェックボックスの表示を変更することができません、 "listviewCheckbox"がnullであるためです。

何か助けていただければ幸いです。ありがとうございました。

+0

deliverNumberTextViewがnullではないでしょうか? –

+0

@ρяσѕρєяKいいえ、nullではありませんが、listviewCheckboxはnullです。 –

答えて

1

は、この方法を試してみてください::

public class ListAdapter: BaseAdapter 
{ 

    // Make this variable global 
    TextView deliverNumberTextView ; 
    CheckBox listviewCheckbox 

    public override View GetView (int position, View convertView, ViewGroup parent) 
    { 
      View row = convertView; 

      if (row == null) 
      { 
       row = LayoutInflater.From (_context).Inflate (Resource.Layout.ListviewRow, null, false); 
      } 

       deliverNumberTextView = (TextView) row.FindViewById (Resource.Id.deliverNumberTextView); 

       listviewCheckbox = (CheckBox)row.FindViewById(Resource.Id.listviewCheckbox); 

       deliverNumberTextView.Text = _deliveries[position].DeliveryNumber; 
       listviewCheckbox.Visibility = ViewStates.Visible; 

    return row; 
    } 
} 
+0

は既に試してみましたが効果はありません。とにかく高すぎる。 –

+0

エラーログを投稿できますか? – Jaymin

+0

これに関連するエラーログには何もありません。多くのことを試してみると、私は戦略を変えました。とにかく、ありがとう。 –

関連する問題