-1

スピナーを設定しようとしていますが、文字列配列で「配列定数は初期化子でのみ使用できます」というエラーが発生します。文字列配列をローカル変数として使用するとコードは正常に機能しますが、グローバル変数としては機能しません。文字列配列をグローバル変数として使用できるようにする必要があります。前もって感謝します。これが私のコードです:

 deleteselection = (Spinner)view.findViewById(R.id.deletespinner);
    ArrayAdapter<String> adapterdeletetype;
    //createdenominationsarray = getResources().getStringArray(R.array.createdenominations); //<--works
    //String [] createdenominationsarray = {"Select Portfolio", "Two", "Three"}; //<--works
    createdenominationsarray = {"Select Portfolio", "Two", "Three"};// <--doesn'twork
    adapterdeletetype = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,createdenominationsarray){
            @Override
            public View getDropDownView(int position, View convertView, ViewGroup parent)
            {
                View v = null;

                // If this is the initial dummy entry, make it hidden
                if (position == 0) {
                    TextView tv = new TextView(getContext());
                    tv.setHeight(0);
                    tv.setVisibility(View.GONE);
                    v = tv;
                }
                else {
                    // Pass convertView as null to prevent reuse of special case views
                    v = super.getDropDownView(position, null, parent);
                }

                // Hide scroll bar because it appears sometimes unnecessarily, this does not prevent scrolling 
                parent.setVerticalScrollBarEnabled(false);
                return v;
            }
        };      
    adapterdeletetype.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    denominationselection.setAdapter(adapterdeletetype); 
4

2 に答える 2

1

私は自分のプロジェクトの1つで同じことをしましたが、それは私にとってはうまくいきます。以下は、参照用のコード スニペットです。

ArrayList<String> languages = new ArrayList<String>();
languages.add("English");
languages.add("German");
languages.add("French");
ArrayAdapter<String> langAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,languages);
ListView lv =(ListView)findViewById(R.id.listmain);
lv.setAdapter(langAdapter);
lv.setOnItemClickListener(new listclklisten(MainActivity.this));



public class listclklisten implements OnItemClickListener{
        private Context parent;
        public listclklisten(Context p){
            parent=p;
        }
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            // TO DO your code here

        }
    }
于 2012-08-24T04:40:31.043 に答える
1

書き込みstring.xml:

   <string-array name="spinner_array_environtment">
        <item>Test</item>
        <item>Production</item>
    </string-array>

MainActivity.java 内:

public class MainActivity extends Activity {
Spinner spinner_environment;

        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                spinner_environment = (Spinner) findViewById(R.id.spinnerview);
adapter =ArrayAdapter.createFromResource(this,              R.array.spinner_array_environtment,R.layout.spinner_phone);
            adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
            spinner_environment.setAdapter(adapter);
}

spinner_phone.xml 内:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinnerTarget"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="13dp"
    android:textColor="#4C4646" />

これを試してください。それがあなたを助けることを願っています。

于 2012-08-24T05:07:30.180 に答える