Java 在SearchView中输入字符串之前,如何隐藏ListView

Java 在SearchView中输入字符串之前,如何隐藏ListView,java,android-studio,Java,Android Studio,我试图隐藏我的ListView,直到在SearchView中输入字符串 我对Java非常陌生,但我尝试了一个文本侦听器,甚至使用了一个点击方法,但我似乎无法让它工作 package com.example.searchfunction; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.ListView; import

我试图隐藏我的ListView,直到在SearchView中输入字符串

我对Java非常陌生,但我尝试了一个文本侦听器,甚至使用了一个点击方法,但我似乎无法让它工作

package com.example.searchfunction;

    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.ListView;
    import android.widget.SearchView;
    import java.util.ArrayList;
    import android.os.Bundle;

public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {

    // Declare Variables
    ListView list;
    ListViewAdapter adapter;
    SearchView editsearch;
    String[] animalNameList;
    ArrayList<AnimalNames> arraylist = new ArrayList<AnimalNames>();

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

        // Generate sample data
        animalNameList = new String[]{"Lion", "Tiger", "Dog",
                "Cat", "Tortoise", "Rat", "Elephant", "Fox",
                "Cow","Donkey","Monkey"};

        // Locate the ListView in listview_main.xml
        list = findViewById(R.id.listview);

        for (int i = 0; i < animalNameList.length; i++) {
            AnimalNames animalNames = new AnimalNames(animalNameList[i]);
            // Binds all strings into an array
            arraylist.add(animalNames);
        }

        // Pass results to ListViewAdapter Class
        adapter = new ListViewAdapter(this, arraylist);

        // Binds the Adapter to the ListView
        list.setAdapter(adapter);

        // Locate the EditText in listview_main.xml
        editsearch = (SearchView) findViewById(R.id.search);
        editsearch.setOnQueryTextListener(this);
    }

    @Override
    public boolean onQueryTextSubmit(String query) {

        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        String text = newText;
        adapter.filter(text);
        return false;
    }
}
package com.example.searchfunction;
导入androidx.appcompat.app.appcompat活动;
导入android.os.Bundle;
导入android.widget.ListView;
导入android.widget.SearchView;
导入java.util.ArrayList;
导入android.os.Bundle;
公共类MainActivity扩展AppCompatActivity实现SearchView.OnQueryTextListener{
//声明变量
列表视图列表;
ListViewAdapter适配器;
搜索视图编辑搜索;
字符串[]动物名称列表;
ArrayList ArrayList=新的ArrayList();
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//生成样本数据
animalNameList=新字符串[]{“狮子”、“老虎”、“狗”,
“猫”、“乌龟”、“老鼠”、“大象”、“狐狸”,
“牛”、“驴”、“猴”};
//在ListView_main.xml中找到ListView
list=findviewbyd(R.id.listview);
for(int i=0;i
在它应该工作的方法中返回true


@Override
public boolean onQueryTextChange(String newText) {
    String text = newText;
    adapter.filter(text);
    if(TextUtils.isEmpty(text)){
        list.setVisibility(View.GONE);
    }
    else {
        list.setVisibility(View.VISIBLE);
    }
    return true;
}

谢谢你,帕万。我将您的代码放在我的onCreate方法中,出现以下两个错误:1)无法解析方法“addTextChangedListener”2)无法解析方法“filter”@RafA是的,我知道我认为它是EditText。@RafA我在回答中做了更改,请检查。您好@Pavanagaraja。不鼓励只使用代码的答案。请添加更多的文字来解释上下文和代码的作用,以便其他读者能够快速理解。谢谢。@PavanNagaraja,它工作得很好,也更容易理解。再次感谢!