0
アイテムがチェックされているときに、選択したテキストの色を変更したい。私はここでTextView
とCheckBox
ListViewで選択したテキストを変更する方法CheckBox
でカスタムアイテムにカスタムアダプタを作った私のitem.xmlです:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/txtRow"
android:text ="TEST"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<CheckBox
android:id="@+id/ckbBox"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
そして、私のアダプタ:
public class ListViewAdapter : BaseAdapter,IOnCheckedChangeListener
{
List<string> lstData = new List<string>();
Activity activity;
LayoutInflater inflater;
View itemView;
public ListViewAdapter(Activity activity,List<string> lstData)
{
this.activity = activity;
this.lstData = lstData;
}
public override int Count
{
get
{
return lstData.Count;
}
}
public override Java.Lang.Object GetItem(int position)
{
return position;
}
public override long GetItemId(int position)
{
return position;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
inflater = (LayoutInflater)activity.ApplicationContext.GetSystemService(Context.LayoutInflaterService);
itemView = inflater.Inflate(Resource.Layout.item, null);
TextView txtRow = itemView.FindViewById<TextView>(Resource.Id.txtRow);
CheckBox ckbRow = itemView.FindViewById<CheckBox>(Resource.Id.ckbBox);
ckbRow.SetOnCheckedChangeListener(this);
if (ckbRow.Checked)
txtRow.Text = "HEHEHE";
return itemView;
}
public void OnCheckedChanged(CompoundButton buttonView, bool isChecked)
{
if (isChecked)
{
var txtRow = itemView.FindViewById<TextView>(Resource.Id.txtRow);
txtRow.SetTextColor(Android.Graphics.Color.White);
}
}
}
しかし、私がチェックCheckBox
にTextViewが期待どおりに色を変更しません。
のように編集してみてください私は – EddyLee
をクリックしたときにありがとうしかし、私はリアルタイムを変更したいあなたがクリックされたとき、それはまたあなたのメソッドgetViewメソッドも有効ではありませんbecouse、まだ同じビューと色を更新します。 getViewメソッドでブレークポイントを設定しようとすると、clikのチェックボックスの後に何が起きているのかが分かります。 –