如何使用图像、文本在 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 中设置所有 TextViewImageViewRadioButton 等,并在自定义适配器中相应地访问它们。

feedItemsCityNames 是一个 ArrayList<CityInfo> 类型的数组列表,它保存从服务器检索到的更新数据。

希望你从这个例子中得到一个清晰的思路。

要在微调器中获取文本视图和图像,您必须为此使用自定义适配器,请遵循以下示例link,这对您创建自定义适配器有帮助

http://androidexample.com/Custom_Spinner_With_Image_And_Text_-_Android_Example/index.php?view=article_discription&aid=84&aaid=107

如果您有任何疑问,请随时发表评论

为每个数据集设置一个布尔值。 接下来,编写一个扩展 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);