4

以下は私のコードです。しかし、それは不可能であることを示しています。単純な配列をスピナーに設定するのではなく、配列リストをスピナーに設定する方法を誰かに教えてもらえますか?以下は私のコードです。

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

//ここに文字列値をarraylistに設定するコードがあります

//以下は、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

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 に答える