如果我正确理解您的要求,那么您希望通过基于键入的字母滚动列表来最小化用户必须在您的字典应用程序中进行的键入。
您可以使用自动完成文本视图代替编辑文本来实现相同的结果。
当用户键入一些字母时,android 将显示以这些单词开头的所有单词。
当用户选择正确的单词时,列表可以滚动到该位置。这是示例代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<AutoCompleteTextView
android:id="@+id/edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:completionThreshold="3" />
</LinearLayout>
公共类 AutoCompleteActivity 扩展 Activity 实现 OnItemClickListener{
private AutoCompleteTextView edit;
private static final String[] items={"lorem", "ipsum", "dolor",
"sit", "amet", "consectetuer", "adipiscing", "elit", "morbi",
"vel", "ligula", "vitae", "arcu", "aliquet", "mollis","etiam",
"vel", "erat", "placerat", "ante", "porttitor", "sodales",
"pellentesque", "augue", "purus"};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
edit=(AutoCompleteTextView)findViewById(R.id.edit);
edit.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line,
items));
edit.setOnItemClickListener(this);
}
@Override
public void onItemClick (AdapterView<?> parent, View v, int position, long Id)
{
Toast.makeText(AutoCompleteActivity.this, items[position], Toast.LENGTH_SHORT).show();
// scroll the list to the correct position
//listView.setSelection(position);
}
}
这里的适配器附加了 autoCompleteText 视图,当用户键入时,它会
在下拉列表中显示以这些字母开头的所有单词,并且当用户
单击列表中的任何单词时,将调用 onItemClick 方法。
我希望这个能帮上忙