Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的listview过滤器突然停止工作,我不';我不知道为什么_Android_Android Listview_Android Filter - Fatal编程技术网

Android 我的listview过滤器突然停止工作,我不';我不知道为什么

Android 我的listview过滤器突然停止工作,我不';我不知道为什么,android,android-listview,android-filter,Android,Android Listview,Android Filter,我制作了一个带有listview和过滤器的Edittext,它工作得很顺利,但突然停止了工作。我已经在Google和Stackoverflow上搜索了一个解决方案,但是代码应该是正确的。我从Arraylist获取列表内容,然后将其放入Customlistadapter,并将其放入Listview。然后在ContextChanged中,我使用来自edittext的输入过滤列表,但是当我在edittext中输入了某个内容时,列表变为空,当我没有任何内容时,为什么会发生这种情况 public clas

我制作了一个带有listview和过滤器的Edittext,它工作得很顺利,但突然停止了工作。我已经在Google和Stackoverflow上搜索了一个解决方案,但是代码应该是正确的。我从Arraylist获取列表内容,然后将其放入Customlistadapter,并将其放入Listview。然后在ContextChanged中,我使用来自edittext的输入过滤列表,但是当我在edittext中输入了某个内容时,列表变为空,当我没有任何内容时,为什么会发生这种情况

public class Sogeresultater extends AppCompatActivity implements Liste{

CustomListAdapter listAdapter;
EditText filterText;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list);


    ArrayList<Annonce> søgeresultater = (ArrayList<Annonce>) getIntent().getExtras().getSerializable("søg");


    filterText = (EditText)findViewById(R.id.password);
    ListView itemList = (ListView)findViewById(R.id.listView);
    listAdapter = new CustomListAdapter (this, søgeresultater);

    itemList.setAdapter(listAdapter);
    itemList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
            Intent intent = new Intent(Sogeresultater.this, AnnonceDisplay.class);
            intent.putExtra("annonce", (Serializable) adapterView.getItemAtPosition(position));
            startActivity(intent);
        }
    });

    filterText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            Sogeresultater.this.listAdapter.getFilter().filter(s);

        }

        @Override
        public void afterTextChanged(Editable s) {


        }
    });
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.Forside) {
        Intent intent = new Intent(this, Forside.class);
        startActivity(intent);
    }
    else if (id == R.id.Logud){
        Intent intent = new Intent(this, LogInd.class);
        startActivity(intent);
    }

    return true;
 }
}
公共类SogereSultter扩展AppCompative实现Liste{
自定义列表适配器列表适配器;
编辑文本过滤器文本;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_列表);
ArrayList søgeresultater=(ArrayList)getIntent().getExtras().getSerializable(“søg”);
filterText=(EditText)findViewById(R.id.password);
ListView itemList=(ListView)findViewById(R.id.ListView);
listAdapter=新的CustomListAdapter(这个,søgeresultater);
setAdapter(listAdapter);
itemList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id){
Intent Intent=新Intent(sogeresultter.this,AnnonceDisplay.class);
intent.putExtra(“annonce”,(可序列化)adapterView.getItemAtPosition(position));
星触觉(意向);
}
});
filterText.addTextChangedListener(新的TextWatcher(){
@凌驾
更改前文本之前的公共void(字符序列s、int start、int count、int after){
}
@凌驾
public void onTextChanged(字符序列、int start、int before、int count){
Sogeresultater.this.listAdapter.getFilter().filter;
}
@凌驾
公共无效后文本已更改(可编辑){
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
int id=item.getItemId();
if(id==R.id.Forside){
Intent Intent=新的Intent(这个,Forside.class);
星触觉(意向);
}
else if(id==R.id.Logud){
Intent Intent=新Intent(这个,LogInd.class);
星触觉(意向);
}
返回true;
}
}
Customlistadapter:

public class CustomListAdapter extends ArrayAdapter<Annonce>{

private final Activity context;
LayoutInflater inflater;

    public CustomListAdapter(Activity context, ArrayList<Annonce> annoncer) {
        super(context, R.layout.mylist, annoncer);
        this.context=context;
    }
public View getView(int position,View view,ViewGroup parent) {
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);


    if (view == null) view = inflater.inflate(R.layout.mylist, null);

    TextView txtTitle = (TextView) view.findViewById(R.id.item);
    ImageView imageView = (ImageView) view.findViewById(R.id.icon);
    TextView extratxt = (TextView) view.findViewById(R.id.textView1);

    Annonce currentItem = getItem(position);

    txtTitle.setText(currentItem.getItemname());
    imageView.setImageResource(currentItem.getImgid());
    extratxt.setText(currentItem.getDescription());
    return view;

 }
}
公共类CustomListAdapter扩展了ArrayAdapter{
私人最终活动背景;
充气机;
公共CustomListAdapter(活动上下文,ArrayList annoncer){
super(context,R.layout.mylist,annoncer);
this.context=context;
}
公共视图getView(内部位置、视图视图、视图组父视图){
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
如果(view==null)view=inflater.inflate(R.layout.mylist,null);
TextView txtTitle=(TextView)view.findViewById(R.id.item);
ImageView=(ImageView)view.findViewById(R.id.icon);
TextView extratxt=(TextView)view.findViewById(R.id.textView1);
Annonce currentItem=getItem(位置);
setText(currentItem.getItemname());
setImageResource(currentItem.getImgid());
setText(currentItem.getDescription());
返回视图;
}
}

您的CustomListAdapter做什么?你能提供一些代码吗?你的适配器应该有一个对
getFilter()
的覆盖,但我看不到。我该如何实现它?这很奇怪,因为以前是这样工作的