-1

私はAndroid開発の初心者なので、アルファベットのピッカーを作成する方法を教えてください。

4

3 に答える 3

7

私は最近これを理解しようとしていましたが、NumberPicker ウィジェットを使用してそれを行うことができます。

XML で番号ピッカーを定義します

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

          <NumberPicker
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/NumberPicker"/>

 </LinearLayout>

次に、onCreate メソッドで NumberPicker を作成し、XML レイアウトをキャストしてから、NumberPicker メソッドを使用してデータを設定します。

以下で使用されるメソッドは、ピッカーに表示される項目の配列を作成します。最小値と最大値により、数値の範囲が作成されます。範囲が配列内のアイテムの数と同じでない場合、実行されません。したがって、完全なアルファベットが 0 と 25 の場合、setDisplayedValues メソッドは、配列内の対応する値 (0、1、2 など) で定義した数値をオーバーライドします。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);

    NumberPicker NumberPicker = (NumberPicker) findViewById(R.id.NumberPicker);
            String[] alphabet = {"A","B","C","D","E","F","G"}; //etc
            NumberPicker.setMaxValue(0); 
            NumberPicker.setMaxValue(6);
            NumberPicker.setDisplayedValues(alphabet);
}

私はこの質問が3年前のものであることを知っています....まあ...あなたがまだ立ち往生していないことを願っています。

また、これ 文字列で NumberPicker ウィジェットを使用する

于 2014-09-19T04:22:58.727 に答える
1

スピナーが欲しいと思います。作成方法については、このガイドを参照してください。

于 2011-08-09T17:40:46.297 に答える
0

スピナーを使用せず、何らかの理由でユーザーに各文字をクリックさせたい場合は、次のように設定できます。

TextView txt = (EditText)findViewById(R.id.pickertxt);
Button next = (Button)findViewById(R.id.nextbtn);
Button prev = (Button)findViewById(R.id.prevbtn);

char picker = 'a';
txt.setText(picker);

next.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        picker++;
        txt.setText(picker);
    }
});

prev.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        picker--;
        txt.setText(picker);
    }
});

スピナーを使用する方がおそらく好まれますが (クリックするのではなく、リストから値を選択できるドロップダウンに似ています)、または AZ を実行している場合は、ユーザーが入力できるようにする EditText を使用しないのはなぜですか?

于 2011-08-09T18:30:40.703 に答える