4

下面是我的代码。但它表明这是不可能的。有人可以建议我如何将数组列表设置为微调器,而不是将简单数组设置为微调器。下面是我的代码。

ArrayList<String> categoryList = new ArrayList<String>();

//这里我有代码将字符串值设置为arraylist

//下面是我尝试设置数组列表的代码,但它显示“构造函数 ArrayAdapter(new Runnable(){}, int, ArrayList) 未定义

Spinner spinnerCategory = (Spinner)findViewById(R.id.spinnercategory);
                    ArrayAdapter<String> categoriesAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categoryList);
4

3 回答 3

3

请使用Activity的Context作为ArrayAdapter的第一个参数,可以使用

ActivityName.this而不是this,其中 ActivityName 是活动类的名称。看来您正在某个 Runnable 或 Thread 类中运行此代码,所以现在,this它是一个Runnable对象的实例。

于 2012-12-08T09:10:54.967 回答
3

使用以下 -

Spinner spinnerCategory = (Spinner)findViewById(R.id.spinnercategory);
                ArrayAdapter<String> categoriesAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, categoryList);
于 2012-12-08T09:15:03.687 回答
1

使用自定义适配器并根据您的数据实现它。这只是一个不工作的示例代码。

 Spinner spinnerCategory = (Spinner)findViewById(R.id.spinnercategory);
          spinnerCategory.setAdapter( new SpinnerAdapter() {

            @Override
            public void unregisterDataSetObserver(DataSetObserver observer) {
                // TODO Auto-generated method stub

            }

            @Override
            public void registerDataSetObserver(DataSetObserver observer) {
                // TODO Auto-generated method stub

            }

            @Override
            public boolean isEmpty() {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean hasStableIds() {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public int getViewTypeCount() {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public int getItemViewType(int position) {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public long getItemId(int position) {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public Object getItem(int arg0) {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public View getDropDownView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub
                return null;
            }
        });
于 2012-12-08T09:13:34.407 回答