Java 我试图使一个列表视图,有图片,消息,标题,我希望所有列出的列表视图是可搜索的

Java 我试图使一个列表视图,有图片,消息,标题,我希望所有列出的列表视图是可搜索的,java,android,listview,Java,Android,Listview,我已经完成了代码,但似乎搜索不起作用 public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener { ListView lv; SearchView searchView; ArrayAdapter<String> adapter; String[] apptitle = {"†orch", "Quiz It!"}; String[] inf = {"cl

我已经完成了代码,但似乎搜索不起作用

public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {

ListView lv;
SearchView searchView;
ArrayAdapter<String> adapter;
String[] apptitle = {"†orch", "Quiz It!"};
String[] inf = {"click for info", "click for info"};
int[] img = {R.drawable.ic_launcher, R.drawable.ic_launcher};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
    lv = (ListView) findViewById(R.id.idlistview);
    searchView = (SearchView) findViewById(R.id.idsearch);
    Adapterim adapter = new Adapterim(getApplicationContext(), apptitle, inf, img);
    lv.setAdapter(adapter);
    /*adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, appTitle);
    lv.setAdapter(adapter);*/
    searchView.setOnQueryTextListener(this);

}

@Override
public boolean onQueryTextSubmit(String query) {
    return false;
}
}

// ArrayAdapter extends, Let's create class
class Adapterim extends ArrayAdapter<String> {

//For the information we need for our content
//Create array variable
int[] img = {};
String[] apptitle = {};
String[] inf = {};

//Context and layoutinflater as required
//Let's create them
Context c;
LayoutInflater inflater;

//The parameters of the generated method
public Adapterim(Context context, String[] apptitle, String[] inf, int[] img) {
    //Values to be entered into the super method
    //
    super(context, R.layout.listview_class, apptitle);

    // Equalize the parameters to the variables in this class
    this.img = img;
    this.apptitle = apptitle;
    this.inf = inf;
    this.c = context;

}

// Let's create our inner class and
// create our components
public class Viewholder {
    TextView attv;
    TextView inftv;
    ImageView imgim;

}

//With this automatic method, each element in the array can be edited one by one
//We add data to the components in ListView
@Override
public View getView(int position, View convertView, ViewGroup parent) {


    if (convertView == null) {
        inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.listview_class, null, true);

    }
    // Create an object from our class we created
    final Viewholder holder = new Viewholder();

    // And the components we create in our inner structure
    //I sync with the components in the layout
    holder.attv = (TextView) convertView.findViewById(R.id.custom_textView);
    holder.inftv = (TextView) convertView.findViewById(R.id.custom_textView2);
    holder.imgim = (ImageView) convertView.findViewById(R.id.custom_imageView);

    //In order to assign the array elements as data for each component
    //Assign position value to our arrays
    //And set the values of our components
    holder.imgim.setImageResource(img[position]);
    holder.attv.setText(apptitle[position]);
    holder.inftv.setText(inf[position]);

    //It must be a return value and I will return View
    return convertView;
}
}
public类MainActivity扩展AppCompatActivity实现SearchView.OnQueryTextListener{
ListView lv;
搜索视图搜索视图;
阵列适配器;
字符串[]apptitle={“†orch”,“测试它!”;
字符串[]inf={“点击获取信息”,“点击获取信息”};
int[]img={R.drawable.ic_启动器,R.drawable.ic_启动器};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main_活动);
lv=(ListView)findViewById(R.id.idlistview);
searchView=(searchView)findViewById(R.id.idsearch);
Adapterim adapter=new Adapterim(getApplicationContext(),apptitle,inf,img);
低压设置适配器(适配器);
/*adapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,appTitle);
低压设置适配器(适配器)*/
setOnQueryTextListener(这个);
}
@凌驾
公共布尔值onQueryTextSubmit(字符串查询){
返回false;
}
}
//ArrayAdapter扩展,让我们创建类
类Adapterim扩展了ArrayAdapter{
//获取内容所需的信息
//创建数组变量
int[]img={};
字符串[]apptitle={};
字符串[]inf={};
//根据需要设置上下文和布局
//让我们创建它们
上下文c;
充气机;
//生成方法的参数
公共适配器IM(上下文上下文,字符串[]apptitle,字符串[]inf,int[]img){
//要输入超级方法的值
//
super(context,R.layout.listview_类,apptitle);
//使参数与此类中的变量相等
this.img=img;
this.apptitle=apptitle;
this.inf=inf;
c=上下文;
}
//让我们创建我们的内部类和
//创建我们的组件
公共类视图持有者{
文本视图attv;
图文电视;
图像视图imgim;
}
//使用此自动方法,可以逐个编辑数组中的每个元素
//我们向ListView中的组件添加数据
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
充气器=(LayoutInflater)c.getSystemService(Context.LAYOUT\u充气器\u SERVICE);
convertView=充气机。充气(R.layout.listview_类,空,真);
}
//从我们创建的类创建一个对象
最终视图持有者=新的视图持有者();
//以及我们在内部结构中创建的组件
//我与布局中的组件同步
holder.attv=(TextView)convertView.findViewById(R.id.custom_TextView);
holder.inftv=(TextView)convertView.findViewById(R.id.custom_textView2);
holder.imgim=(ImageView)convertView.findViewById(R.id.custom_ImageView);
//为了将数组元素指定为每个组件的数据
//为数组分配位置值
//并设置组件的值
holder.imgim.setImageResource(img[位置]);
holder.attv.setText(应用标题[职位]);
holder.inftv.setText(inf[位置]);
//它必须是一个返回值,我将返回视图
返回视图;
}
}

您希望搜索如何工作?因为在
onquerytexsubmit(字符串查询)
中,您只是返回false而不是对其作出反应?请尝试实现Filterable。将此链接作为参考:定义“不工作”。它是否返回错误?意外的结果?计算机爆炸?