如何在android中使用图像,文本创建自定义微调器?

时间:2015-10-15 12:16:41

标签: android mysql web-services spinner

任何人都可以指导我在android中创建应该是动态数据的自定义微调器。

3 个答案:

答案 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中设置所有ImageViewRadioButtonspinner_items.xml等,并在自定义适配器中相应地访问它们。

feedItemsCityNames是一个ArrayList<CityInfo>类型的数组列表,其中包含从服务器检索的更新数据。

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

答案 2 :(得分:0)

要在微调器中获取textview和image,你必须使用自定义适配器,请按照下面的示例链接,这对创建自定义适配器很有帮助

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

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