簡體   English   中英

Android Spinner適配器選擇不適用於使用自定義BaseAdapter的情況

[英]Android spinner adapter selecting doesn't work with using custom BaseAdapter

我的微調器元素自定義適配器有問題。 微調框顯示了適配器的列表,但是當我嘗試選擇項目時,它不起作用。

這是我的適配器代碼:

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;
    }
}

我究竟做錯了什么?

如果您希望在屏幕上出現微調框時預先選擇任何項目,則可以使用

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) {

        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM