任何人都可以指导我在android中创建应该是动态数据的自定义微调器。
答案 0 :(得分:1)
为每个数据集设置一个布尔值。 接下来,编写一个扩展ArrayAdapter的自定义适配器
CustomAdapter adapter = new CustomAdapter(YourActivity.this, yourList);
在CustomAdapter内部覆盖getView方法并在其中扩充布局。该布局可以包含imageview,textview和checkbox。
看起来像这样
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);
在您的活动中创建一个名为prevBoolean的布尔值。 现在,您可以对每个数据集使用布尔值,只要选中该复选框,请尝试使用
currentDataset.boolean=true;
if(prevBoolean!=null)
prevBoolean=false;
prevBoolean=currrentdataset.boolean;
,在getview()方法中,如果选中了boolean,则设置
checkbox.setChecked(true);
否则
checkbox.setChecked(false);
答案 1 :(得分:0)
我将简要解释一下您实现所需内容所需的基本方法。
首先,您需要一个自定义适配器来为您的微调器设置类似的东西,
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类将是这样的,
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;
}
}
在您的活动的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);
在TextView
中设置所有ImageView
,RadioButton
或spinner_items.xml
等,并在自定义适配器中相应地访问它们。
feedItemsCityNames
是一个ArrayList<CityInfo>
类型的数组列表,其中包含从服务器检索的更新数据。
希望你从这个例子中得到一个清晰的想法。
答案 2 :(得分:0)
要在微调器中获取textview和image,你必须使用自定义适配器,请按照下面的示例链接,这对创建自定义适配器很有帮助
如果您有任何疑问,请随时发表评论