在输入搜索字符串之前隐藏android ListView

在输入搜索字符串之前隐藏android ListView,android,listview,search-box,Android,Listview,Search Box,我已经学习了本教程,并在列表上进行了搜索。我想做的唯一更改是,最初隐藏列表视图,结果仅在用户开始键入时显示。有办法做到这一点吗 编辑:添加代码 package com.example.testapp; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; i

我已经学习了本教程,并在列表上进行了搜索。我想做的唯一更改是,最初隐藏列表视图,结果仅在用户开始键入时显示。有办法做到这一点吗

编辑:添加代码

package com.example.testapp;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

public class MainActivity extends Activity {
/** Called when the activity is first created. */
private ListView lv1;
private EditText ed;
private String lv_arr[]=  {"Android","Cupcake","Donut","Eclairs","AndroidPeople","Froyo",};
private ArrayList<String> arr_sort= new ArrayList<String>();
int textlength=0;
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.activity_main);
lv1=(ListView)findViewById(R.id.ListView);
ed=(EditText)findViewById(R.id.EditText01);
// By using setAdpater method in listview we an add string array in list.
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 ,   lv_arr));
ed.addTextChangedListener(new TextWatcher() {

public void afterTextChanged(Editable s) {
if(lv1.getVisibility() != View.VISIBLE)
    lv1.setVisibility(View.VISIBLE);
}

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<lv_arr.length;i++)
{
if(textlength<=lv_arr[i].length())
{
if(ed.getText().toString().equalsIgnoreCase((String) lv_arr[i].subSequence(0,    textlength)))
{
arr_sort.add(lv_arr[i]);
}
}
}

lv1.setAdapter(new ArrayAdapter<String>    (MainActivity.this,android.R.layout.simple_list_item_1 , arr_sort));

} 
});
}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}
package com.example.testapp;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.os.Bundle;
导入android.text.Editable;
导入android.text.TextWatcher;
导入android.view.Menu;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.EditText;
导入android.widget.ListView;
公共类MainActivity扩展了活动{
/**在首次创建活动时调用*/
私有ListView lv1;
私人编辑文本;
私有字符串lv_arr[]={“Android”、“纸杯蛋糕”、“甜甜圈”、“Eclairs”、“AndroidPeople”、“Froyo”、};
private ArrayList arr_sort=new ArrayList();
int textlength=0;
@凌驾
创建公共空间(捆绑冰柱)
{
超级冰柱;
setContentView(R.layout.activity_main);
lv1=(ListView)findViewById(R.id.ListView);
ed=(EditText)findViewById(R.id.EditText01);
//通过在listview中使用setAdPath方法,我们在列表中添加了一个字符串数组。
lv1.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,lv_arr));
ed.addTextChangedListener(新的TextWatcher(){
公共无效后文本已更改(可编辑){
if(lv1.getVisibility()!=View.VISIBLE)
lv1.setVisibility(View.VISIBLE);
}
更改前的公共无效(字符序列、整数开始、整数计数、,
整数后){
}
public void onTextChanged(字符序列,int start,int before,
整数计数){
textlength=ed.getText().length();
arr_sort.clear();

对于(int i=0;i我会这样做:

   EditText etSearch = (EditText) getView().findViewById(R.id.etSearch);
    etSearch.addTextChangedListener(new TextWatcher(){
            public void afterTextChanged(Editable s) {
                if(view.getVisibility() != View.Visible)
                       view.setVisiblity(View.Visible);
            }
            public void beforeTextChanged(CharSequence s, int start, int count, int after){}
            public void onTextChanged(CharSequence s, int start, int before, int count){}
        }); 

我会这样做:

   EditText etSearch = (EditText) getView().findViewById(R.id.etSearch);
    etSearch.addTextChangedListener(new TextWatcher(){
            public void afterTextChanged(Editable s) {
                if(view.getVisibility() != View.Visible)
                       view.setVisiblity(View.Visible);
            }
            public void beforeTextChanged(CharSequence s, int start, int count, int after){}
            public void onTextChanged(CharSequence s, int start, int before, int count){}
        }); 

这对我来说仍然不起作用-你能看到我做错了什么吗?这现在起作用了,但是当我试图将代码引入另一个项目时,我得到了一个空指针异常,由以下行lv1.setAdapter(新的ArrayAdapter(this,android.R.layout.simple_list_item_1,lv_arr))引起;对不起,它不存在,所以现在起作用了:)很好。或者你还需要帮助吗?这对我来说仍然不起作用-你能看到我做错了什么吗?这现在起作用了,但是当我试图将代码引入另一个项目时,我得到了一个空指针异常,原因是以下行lv1.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,lv_arr));对不起,我没来,所以现在可以用了?:)很好。或者你还需要帮助吗?