我希望能够搜索按钮的文本并返回与该搜索匹配的任何按钮。
E.g。我有三个按钮,每个按钮都有按钮文字:One,Two&三。 当我搜索“Two”时,我想要显示按钮测试“Two”的按钮。
我已经看到这是如何使用SearchView完成的,但这只是一个字符串,我不确定如何处理按钮文本
这是我的MainActivity
public class MainActivity extends AppCompatActivity {
private static ListView lv;
private static Button bt, bt2, bt3;
ArrayList<Button> items;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
items = new ArrayList<>();
items.add(0, bt);
items.add(1, bt2);
items.add(2, bt3);
lv = (ListView) findViewById(R.id.list);
lv.setAdapter(new MyListAdapter(this, R.layout.item, items));
}
private class MyListAdapter extends ArrayAdapter<Button> {
private int layout;
public MyListAdapter(Context context, int resource, List<Button> objects) {
super(context, resource, objects);
layout = resource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder mainViewholder = null;
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(layout, parent, false);
ViewHolder viewHolder = new ViewHolder();
viewHolder.bt = (Button) convertView.findViewById(R.id.button);
viewHolder.bt2 = (Button) convertView.findViewById(R.id.buttonn);
viewHolder.bt3 = (Button) convertView.findViewById(R.id.buttonnn);
convertView.setTag(viewHolder);
} else {
mainViewholder = (ViewHolder) convertView.getTag();
}
return convertView;
}
}
public class ViewHolder {
Button bt;
Button bt2;
Button bt3;
}
}
答案 0 :(得分:0)
我真的不明白你想做什么。但是,代码中有一些我们通常不会使用ListView的东西。
看来,在您的代码中,每行有3个按钮。因此,您的数据模型应包含要在3个按钮和3个布尔值上显示的文本,以控制其可见性。您搜索模型中的按钮文本并更改布尔值,然后调用notifyDataSetChanged。将为每行调用GetView以更新UI。