在Xamarin Android中更改SimpleListItemSingleChoice列表视图的单选按钮颜色,可以通过自定义适配器来实现。
首先,创建一个自定义适配器类,继承自ArrayAdapter。在适配器的构造函数中,传入列表项的布局资源和数据源。
public class CustomAdapter : ArrayAdapter<string>
{
private int mSelectedIndex = -1;
public CustomAdapter(Context context, int resource, string[] objects)
: base(context, resource, objects)
{
}
public void SetSelectedIndex(int index)
{
mSelectedIndex = index;
NotifyDataSetChanged();
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
View view = base.GetView(position, convertView, parent);
if (position == mSelectedIndex)
{
// 设置选中项的单选按钮颜色
view.SetBackgroundColor(Color.LightBlue);
}
else
{
// 设置其他项的单选按钮颜色
view.SetBackgroundColor(Color.Transparent);
}
return view;
}
}
然后,在Activity中使用这个自定义适配器来设置列表视图。
public class MainActivity : Activity
{
private ListView mListView;
private CustomAdapter mAdapter;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
// 初始化数据源
string[] data = new string[] { "Item 1", "Item 2", "Item 3", "Item 4" };
// 初始化适配器
mAdapter = new CustomAdapter(this, Android.Resource.Layout.SimpleListItemSingleChoice, data);
// 设置列表视图的适配器
mListView = FindViewById<ListView>(Resource.Id.listView);
mListView.Adapter = mAdapter;
// 设置列表视图的选择模式为单选
mListView.ChoiceMode = ChoiceMode.Single;
mListView.SetItemChecked(0, true); // 默认选中第一项
// 监听列表项的点击事件
mListView.ItemClick += (sender, e) =>
{
mAdapter.SetSelectedIndex(e.Position);
};
}
}
在上述代码中,我们通过自定义适配器的GetView方法来设置选中项和其他项的单选按钮颜色。通过调用SetSelectedIndex方法来更新选中项的索引,并调用NotifyDataSetChanged方法刷新列表视图。
这样,当用户点击列表项时,选中项的单选按钮颜色会改变,其他项的单选按钮颜色会恢复默认。
注意:以上代码仅为示例,实际使用时需要根据自己的需求进行适当修改。
推荐的腾讯云相关产品:腾讯云移动开发平台(https://cloud.tencent.com/product/mwp)
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云