0

これが私のコードです:

public class MainActivity extends Activity {
    Spinner spin;
    TextView tex;
    String[] country = {"A", "Afghanistan", "Albania", "Etc"};// A to Z country names
    String[] code = {"+93", "+91", "Etc"}; // A to Z country Code

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        spin = (Spinner)findViewById(R.id.spinner1);
        tex = (TextView)findViewById(R.id.tex);

        ArrayAdapter aa1 = new ArrayAdapter(this, android.R.layout.simple_spinner_item, country);
        aa1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin.setPrompt("Select the Country");
        spin.setAdapter(aa1);
        spin.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                tex.setText(code[arg2]);
                // tex.setText(country[arg2]);
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
            }
        });
    }
}

スピナーで国のリストをアルファベット順に表示したい。その前に、A、B、C から Z までを表示する必要があります。ただし、この A から Z までは、スピナー リストで非選択モードにする必要があります。どうすればそれを達成できますか?

4

1 に答える 1

0

ArrayAdapter を拡張するカスタム アダプターを作成する必要があります。

おそらく非常に簡単で、次のようになります。

 // the get view on your adapter
getView(LayoutInflater, etc, etc){
   convertView = super.getView(inflater, etc, etc);
   if(getItem(position).equals("A") || getItem(position).equals("B") || // etc, or create some clever way to go through a ArrayList with just the letters ){
      convertView. // set not clickable stuff
     }
}

しかし、ユーザーがクリックするたびにスピナーがリストを閉じると思います。一貫した動作を得るには、スピナーの OnItemClick をオーバーライドする必要があるかもしれません。

于 2013-02-21T11:25:29.690 に答える