gpt4 book ai didi

Android - EditText 作为搜索框不起作用

转载 作者:行者123 更新时间:2023-11-29 14:41:42 24 4
gpt4 key购买 nike

我想为 EditText 启用搜索功能。我的要求是这样的:当有人输入某个字母时,假设用户输入“a”,那么它应该显示所有以“a”开头的单词应该显示为下拉列表。例如,如果我首先在 EditText 中键入“copy”,如果我再次清除 EditText 并尝试键入“co”,那么它应该显示下拉列表“copy”、“come”、“cow”。 ...我想为我的 EditText View 启用此功能。当我的 ListView 中只有一个 textview 时它可以工作,但现在我的 ListView 中有两个 textview 它不起作用。

这是我的 Activity :

public class sedactivity extends Activity {


ListView lview;
ListViewAdapter lviewAdapter;
EditText ed;

private static final String first[] = {
"America",
"Busta",
"Cactus",
"Fire",
"Garden",
"Hollywood",
"King",};

private static final String second[] = {
"Uniti",
"Chiusa",
"Verde",
"Fiamme",
"Aperto",
"Boulevard",
"Kong",};

private ArrayList<String> arr_sort= new ArrayList<String>();
int textlength=0;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ed = (EditText)findViewById(R.id.EditText1);
lview = (ListView) findViewById(R.id.listView2);
lviewAdapter = new ListViewAdapter(this, first, second);


System.out.println("adapter => "+lviewAdapter.getCount());

lview.setAdapter(lviewAdapter);

lview.setTextFilterEnabled(true);



ed.addTextChangedListener(new TextWatcher() {



public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
textlength=ed.getText().length();
arr_sort.clear();
for(int i=0;i<first.length;i++)
{
if(textlength<=first[i].length())
{
if(ed.getText().toString().equalsIgnoreCase((String) first[i].subSequence(0, textlength)))
{
arr_sort.add(first[i]);
}
}
}

}});}

这是我的 ListView 适配器

public class ListViewAdapter extends BaseAdapter{
Activity context;
String title[];
String description[];

public ListViewAdapter(Activity context, String[] title, String[] description) {
super();
this.context = context;
this.title = title;
this.description = description;
}

public int getCount() {
// TODO Auto-generated method stub
return title.length;
}

public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

private class ViewHolder {
TextView txtViewTitle;
TextView txtViewDescription;
}

public View getView(int position, View convertView, ViewGroup parent)
{
// TODO Auto-generated method stub
ViewHolder holder;
LayoutInflater inflater = context.getLayoutInflater();

if (convertView == null)
{
convertView = inflater.inflate(R.layout.listitem_row, null);
holder = new ViewHolder();
holder.txtViewTitle = (TextView) convertView.findViewById(R.id.textView1);
holder.txtViewDescription = (TextView) convertView.findViewById(R.id.textView2);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}

holder.txtViewTitle.setText(title[position]);
holder.txtViewDescription.setText(description[position]);

return convertView;
}

}

最佳答案

我认为 AutoCompleteTextView可能更适合实现此功能。

关于Android - EditText 作为搜索框不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7614736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com