2

標準のAndroidテキストメッセージアプリの「To:」機能に似たものを実装したいと思います。テキストフィールドにフォーカスがある場合、そのすぐ下に3つのボタン(最近、連絡先、グループ)が表示されます。

私はこれをどのようなウィジェットが行うのかを調べようとしてきました。私が考えることができる最も近いのは、3つのボタンを備えたポップアップダイアログを表示することですが、それは同じではありません。ドロップダウンボックスも検討しましたが、それも同じではありません。

提案をありがとう。

編集:Android 2.2

4

2 に答える 2

1

次のようなレイアウトを作成します: 編集テキストと 3 つのボタン: (水平レイアウトがなくなったと定義されていることに注意してください。つまり、表示されません。

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

<LinearLayout
    android:id="@+id/horizontal_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:id="@+id/horizontal_layout"
    android:visibility="gone">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

アクティビティでは、次のようなものがあります。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.test);

    EditText edit = (EditText) findViewById(R.id.teste_editText1);
    final LinearLayout layout = (LinearLayout)findViewById(R.id.horizontal_layout);

    edit.setOnFocusChangeListener(new OnFocusChangeListener() {

        public void onFocusChange(View paramView, boolean paramBoolean) {
            if (paramBoolean) {//if is focused
                layout.setVisibility(View.VISIBLE);
            } else {
                layout.setVisibility(View.GONE);                    
            }
        }
    });
}
于 2012-06-13T20:34:26.423 に答える
0

Android MMS アプリ (AOSP に同梱されているもの) で使用される実際のウィジェットは、入力に基づいて提案を表示 するMultiAutoCompleteTextView( docs link ) です。これは、Froyo のそのアプリケーションで使用されたサブクラスのソースへのリンクです。

もちろん、特定のデバイス上のアプリについて言及している場合、それはアプリケーションのオープン ソース バージョンではない可能性がありますが、これは依然として SDK 内のウィジェットであり、入力に基づく提案を含むポップアップ リストを提供します。

HTH

于 2012-06-13T20:47:39.460 に答える