【问题标题】:Android spinner adapter selecting doesn't work with using custom BaseAdapterAndroid微调器适配器选择不适用于使用自定义BaseAdapter
【发布时间】:2016-01-20 23:27:16
【问题描述】:

我的微调器元素自定义适配器有问题。 Spinner 显示来自我的适配器的列表,但是当我尝试选择项目时它不起作用。

这是我的适配器代码:

public class CategoryAdapter extends BaseAdapter{

    private final ArrayList<String> categories;
    private Context context;
    LayoutInflater inflater;


    public CategoryAdapter(Context context, ArrayList catList){
        this.context = context;
        inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
        categories = catList;
    }

    @Override
    public int getCount() {
        return categories.size();
    }

    @Override
    public String getItem(int position) {
        return categories.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(convertView == null) {
            convertView = inflater.inflate(android.R.layout.simple_spinner_item, null);
        }
        TextView textView = (TextView) convertView.findViewById(android.R.id.text1);
        textView.setTextColor(Color.RED);
        textView.setText(getItem(position));

        return convertView;
    }
}

我做错了什么?

【问题讨论】:

  • define: 但是当我尝试在问题中选择项目时它不起作用
  • @Selvin,当我运行我的应用微调器时没有选择任何项目,当我尝试从微调器列表中选择一个时,没有任何变化。当我尝试方法 spinner.getSelected() 它返回 null。
  • getSelected() spinner 没有这样的方法,而且您的适配器实现看起来一般都可以......所以问题不在于这段代码......

标签: java android spinner adapter baseadapter


【解决方案1】:

如果您希望在屏幕上出现微调器时预选任何项目,您可以使用

spinner.setSelection(position);

如果您想获取任何项目的位置,请使用以下代码,

position = arrayList.indexOf("your item");

手动方式,

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            spinner.setSelection(i);
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    相关资源
    最近更新 更多