如何使用图像、文本在 android 中创建自定义微调器?
how to create custom spinner in android with image, text?
任何人请指导我在 android 中创建应该是动态数据的自定义微调器。
我将简要地向您解释实现所需内容所需的基本方法。
首先,您需要一个自定义适配器来为您的微调器设置类似这样的东西,
public static class CityAdapter extends ArrayAdapter<CityInfo> {
private Activity context;
List<CityInfo> data;
public CityAdapter(Activity context, int resource, List<CityInfo> data, int hidingItemIndex) {
super(context, resource, data);
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Ordinary view in Spinner, we use android.R.layout.simple_spinner_item
return super.getView(position, convertView, parent);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
// This view starts when we click the spinner.
View row = convertView;
LayoutInflater inflater = context.getLayoutInflater();
row = inflater.inflate(R.layout.spinner_items, parent, false);
CityInfo item = data.get(position); //CityInfo is a bean/model class
if (item != null) {
// Parse the data from each object and set it.
TextView myCity = (TextView) row.findViewById(R.id.tv1);
//do other stuffs here
}
return row;
}
}
CityInfo bean class 将是这样的,
public class CityInfo {
private String cityName;
private int cityId;
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getCityName() {
return cityName;
}
public void setCityId(int cityId){
this.cityId = cityId;
}
public int getCityId(){
return cityId;
}
public String toString() {
return cityName;
}
}
在你的 activity 的 onCreate
里面,假设你正在访问微调器,
/*adapter for spinner to show city list*/
cityAdapter = new CityAdapter(this, R.layout.spinner_items, feedItemsCityNames, 0);
// attaching city adapter to spinner
spinner.setAdapter(cityAdapter);
在 spinner_items.xml
中设置所有 TextView
、ImageView
或 RadioButton
等,并在自定义适配器中相应地访问它们。
feedItemsCityNames
是一个 ArrayList<CityInfo>
类型的数组列表,它保存从服务器检索到的更新数据。
希望你从这个例子中得到一个清晰的思路。
要在微调器中获取文本视图和图像,您必须为此使用自定义适配器,请遵循以下示例link,这对您创建自定义适配器有帮助
如果您有任何疑问,请随时发表评论
为每个数据集设置一个布尔值。
接下来,编写一个扩展 ArrayAdapter
的自定义适配器
CustomAdapter adapter = new CustomAdapter(YourActivity.this, yourList);
在 CustomAdapter 中覆盖 getView 方法并在 it.That 中扩展布局布局可以包含图像视图、文本视图和复选框。
看起来像这样
public View getCustomView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.veg_item, parent, false);
//your code here
return convertView;
}
将该适配器设置为您的微调器。
spinner.setAdapter(adapter);
在您的 activity 中创建一个名为 prevBoolean 的布尔值。
现在你可以对你的每个数据集使用一个布尔值,只要复选框被选中,试试这个,
currentDataset.boolean=true;
if(prevBoolean!=null)
prevBoolean=false;
prevBoolean=currrentdataset.boolean;
,在getview()方法里面,如果boolean被选中,设置
checkbox.setChecked(true);
其他
checkbox.setChecked(false);
任何人请指导我在 android 中创建应该是动态数据的自定义微调器。
我将简要地向您解释实现所需内容所需的基本方法。
首先,您需要一个自定义适配器来为您的微调器设置类似这样的东西,
public static class CityAdapter extends ArrayAdapter<CityInfo> {
private Activity context;
List<CityInfo> data;
public CityAdapter(Activity context, int resource, List<CityInfo> data, int hidingItemIndex) {
super(context, resource, data);
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Ordinary view in Spinner, we use android.R.layout.simple_spinner_item
return super.getView(position, convertView, parent);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
// This view starts when we click the spinner.
View row = convertView;
LayoutInflater inflater = context.getLayoutInflater();
row = inflater.inflate(R.layout.spinner_items, parent, false);
CityInfo item = data.get(position); //CityInfo is a bean/model class
if (item != null) {
// Parse the data from each object and set it.
TextView myCity = (TextView) row.findViewById(R.id.tv1);
//do other stuffs here
}
return row;
}
}
CityInfo bean class 将是这样的,
public class CityInfo {
private String cityName;
private int cityId;
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getCityName() {
return cityName;
}
public void setCityId(int cityId){
this.cityId = cityId;
}
public int getCityId(){
return cityId;
}
public String toString() {
return cityName;
}
}
在你的 activity 的 onCreate
里面,假设你正在访问微调器,
/*adapter for spinner to show city list*/
cityAdapter = new CityAdapter(this, R.layout.spinner_items, feedItemsCityNames, 0);
// attaching city adapter to spinner
spinner.setAdapter(cityAdapter);
在 spinner_items.xml
中设置所有 TextView
、ImageView
或 RadioButton
等,并在自定义适配器中相应地访问它们。
feedItemsCityNames
是一个 ArrayList<CityInfo>
类型的数组列表,它保存从服务器检索到的更新数据。
希望你从这个例子中得到一个清晰的思路。
要在微调器中获取文本视图和图像,您必须为此使用自定义适配器,请遵循以下示例link,这对您创建自定义适配器有帮助
如果您有任何疑问,请随时发表评论
为每个数据集设置一个布尔值。 接下来,编写一个扩展 ArrayAdapter
的自定义适配器CustomAdapter adapter = new CustomAdapter(YourActivity.this, yourList);
在 CustomAdapter 中覆盖 getView 方法并在 it.That 中扩展布局布局可以包含图像视图、文本视图和复选框。
看起来像这样
public View getCustomView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.veg_item, parent, false);
//your code here
return convertView;
}
将该适配器设置为您的微调器。
spinner.setAdapter(adapter);
在您的 activity 中创建一个名为 prevBoolean 的布尔值。 现在你可以对你的每个数据集使用一个布尔值,只要复选框被选中,试试这个,
currentDataset.boolean=true;
if(prevBoolean!=null)
prevBoolean=false;
prevBoolean=currrentdataset.boolean;
,在getview()方法里面,如果boolean被选中,设置
checkbox.setChecked(true);
其他
checkbox.setChecked(false);