3

私はAndroid開発に非常に慣れていないので、理解できない問題があるようです。スピナーがあり、値は正常に設定されていますが、プロンプトが表示されません。これをxmlコードとjavaコードの両方で設定しようとしましたが、どちらもまったく機能しません。以下は私の構成です。根本的な何かが欠けているように感じますが、それが何であるかはまだわかりません。

どんな助けでもいただければ幸いです。クレイグ

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000" >

    <Spinner
        android:id="@+id/band"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="72dp"
        android:prompt="@string/year_prompt"
        android:textColor="#F0F0F0" />

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="28dp"
        android:entries="@array/year_array"
        android:prompt="@string/year_prompt"
        android:textColor="#F0F0F0" />

</RelativeLayout>




<string name="year_prompt">Select A Year</string>
<string-array name="year_array">
    <item >2000</item>
    <item >2001</item>
    <item >2002</item>
    <item >2003</item>
    <item >2004</item>
    <item >2005</item>
</string-array>
4

1 に答える 1

4

プロモーションが表示されない理由は、Android 3.0 以降ではプロンプト用のスペースがないためです。

これは3.0以前のスピナーのスクリーンショットです

プロンプトは上部にあり、「国を選択してください」と書かれています。 http://www.mkyong.com/android/android-spinner-drop-down-list-example/のスクリーンショット

ここに画像の説明を入力

したがって、プロンプトは表示されなくなります。

いくつかの可能性があります。

list-arrayまず、プロンプトと同じことを言う項目を の上部に追加するだけです

それ以外の場合は、ボタンを使用して、そこからドロップダウン リストを作成できます。

まず、レイアウトでスピナーをボタンに置​​き換え、プロンプトに指定したテキストを入力します

次に、スピナーの項目のリストを次のファイルに移動します。optionmenu.xml

次に、ボタンを宣言し、ボタンを設定しますonClickListener

そのメソッド内に、次のコードを入れます

4 行目で、指定したレイアウトが optionmenu レイアウトになります

public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.layout.optionmenu, popup.getMenu());
popup.show();

このメソッドを呼び出すときは、次のことを行う必要があります

    View p = (View)findViewById(R.id.spinner button);
showPopup(p);

この価格のコードでは、View p は、メニューの上隅に表示する場所のビューです。したがって、この場合、それはあなたのボタンになります

実装するには、こちらの回答を参照してください-Androidメニューコードが機能しない

そして、各case:.....ステートメントに、ボタン テキストを文字列として設定する行を挿入します。

case R.id.item1:

button.setText("item1");>

ここには他にもいくつかの良い解決策があります-

頭文字が「Select One」の Android Spinner の作り方

于 2012-11-11T09:37:18.747 に答える