2

我想在股票 Android 短信应用程序中实现类似于“收件人:”功能的东西。当焦点位于文本字段上时,其正下方会显示 3 个按钮(最近、联系人和组)。

我一直在试图找出什么样的小部件可以做到这一点。我能想到的最接近的是显示一个带有 3 个按钮的弹出对话框,但这不一样。我也考虑过一个下拉框,但这也不一样。

感谢您的任何建议。

编辑:安卓 2.2

4

2 回答 2

1

有一个类似这样的布局:一个编辑文本和三个按钮:(注意水平布局定义为消失,这意味着它不会显示。

<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文档链接),用于显示基于输入的建议。 这是他们在 Froyo 应用程序中使用的子类的源链接。

当然,如果你指的是特定设备上的应用程序,它可能不是应用程序的开源版本,但这仍然是 SDK 中的小部件,它提供了一个基于键入的建议的弹出列表。

高温高压

于 2012-06-13T20:47:39.460 回答