2016-01-20 78 views
0

我的自定义适配器微调元件有问题。 Spinner从我的适配器中显示一个列表,但是当我尝试选择项目时它不起作用。Android微调控制器适配器选择无法使用自定义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; 
    } 
} 

我在做什么错?

+1

define:*但是当我尝试选择它不工作*在问题 – Selvin

+0

@Se lvin,当我运行我的应用程序时,微调器没有选择任何项目,当我尝试从微调列表中选择一个时,不会有任何更改。当我尝试使用方法spinner.getSelected()时,它返回null。 –

+0

'getSelected()'微调没有这样的方法也适配器实现看起来大体上好的...所以问题不在于此代码... – Selvin

回答

0

,如果你想在微调出现在屏幕预选的任何项目,您可以使用

spinner.setSelection(position); 

,如果你想获得任何项目的位置,然后用下面的代码,

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

menual方式,

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

     } 
    });