我想在Android文字短信应用中实现类似于“收件人:”功能的功能。当焦点位于文本字段时,其下方会显示3个按钮(最近,联系人和组)。
我一直在努力找出这个小部件是做什么的。我能想到的最接近的是显示一个带有3个按钮的弹出式对话框,但这并不相同。我也考虑过一个下拉框,但这也不一样。
感谢您的任何建议。
编辑:Android 2.2
答案 0 :(得分: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);
}
}
});
}
答案 1 :(得分:0)
Android彩信应用中使用的实际小部件(AOSP附带的小部件)是MultiAutoCompleteTextView
(docs link),用于显示基于输入的建议。 Here's a link到他们在Froyo的该应用程序中使用的子类的源代码。
当然,如果您指的是特定设备上的应用程序,它可能不是应用程序的开源版本,但这仍然是SDK中的小部件,它提供了一个基于提示的弹出式列表打字。
HTH