在动态ListView中搜索和添加项目

时间:2013-10-24 06:47:07

标签: android listview

我正在尝试在listview中动态添加电影名称,之后我想使用搜索选项查找电影名称,如果在列表视图中找不到电影名称,请在列表视图中添加电影。我的问题是在使用搜索之前,正确插入列表视图中的电影名称使用搜索后,电影名称未插入列表视图中。

public class MainActivity extends ListActivity implements OnClickListener {

        ArrayList<String> listItems=new ArrayList<String>();


        ArrayAdapter<String> adapter;
        EditText et,inputSearch;


        Button btn;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listItems);
            setListAdapter(adapter);
            adapter.notifyDataSetChanged();

            et=(EditText) findViewById(R.id.editText);
            final EditText inputSearch = (EditText) findViewById(R.id.inputSearch);
            btn=(Button) findViewById(R.id.addBtn);
            btn.setOnClickListener(this);


            inputSearch.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {

                    MainActivity.this.adapter.getFilter().filter(cs);  
                    adapter.notifyDataSetChanged();



                }

                @Override
                public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                        int arg3) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable arg0) {
                    // TODO Auto-generated method stub                          
                }
            });
            }

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            if (isInputValid(et)) {
                listItems.add(0,et.getText().toString());
                et.setText("");

                adapter.notifyDataSetChanged();


        }




    }

             protected boolean isInputValid(EditText etInput2) {
                    // TODO Auto-generatd method stub
                    if (etInput2.getText().toString().trim().length()<1) {
                        etInput2.setError("Please Enter Item");
                        return false;
                    } else {
                        return true;
                    }



    }
    }

1 个答案:

答案 0 :(得分:0)

将登录保护布尔值isInputValid(EditText etInput2){方法以查看它是返回false还是true。 并检查它这个方法是正确得到字符串..

如果它返回你想要的并且你在方法中得到正确的字符串,则将log登录到public void onClick(View v){方法以查看是否从isInputValid方法获取字符串,所以你会知道是否问题出在listItems.add(0,et.getText()。toString());或之前/之后..