有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如果我点击列表视图中的项目,如何禁用一次列表视图?

如果我单击listview的项,setOnItemClickListener会使listview为空,同时在数据库中添加TextChangedListener searche,并在listview中添加其他产品

namechange.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { }
            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                ArrayList<String> arrList = new ArrayList<>();
                if ((namechange.getText().toString()).equals("") ) {
                    arrList.clear();
                    final ArrayAdapter Adapter = new ArrayAdapter(MapsActivity.this, 安卓.R.layout.simple_list_item_1, arrList);
                    list.setAdapter(Adapter);
                    Adapter.notifyDataSetChanged();
                } else {

                    SenderReceiver sr = new SenderReceiver(MapsActivity.this, url, namechange.getText().toString(),list);
                    sr.execute();

                    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                            String adapt = adapterView.getItemAtPosition(i).toString();
                            namechange.setText(adapt);
                            ArrayList<String> arrList = new ArrayList<>();
                            arrList.clear();
                            final ArrayAdapter Adapter = new ArrayAdapter(MapsActivity.this, 安卓.R.layout.simple_list_item_1, arrList);
                            list.setAdapter(Adapter);
                            Adapter.notifyDataSetChanged();

                        }
                    });
                } }

共 (1) 个答案

  1. # 1 楼答案

    你需要拿出adapterList逻辑,点击TextChangeLogic之外的逻辑,而不是使用afterTextChanged

            final ArrayList<String> dataList = new ArrayList();
            final ArrayAdapter adapter = new ArrayAdapter(MapsActivity.this, android.R.layout.simple_list_item_1,dataList);
            list.setAdapter(Adapter);
    
            list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                    String item = adapterView.getItemAtPosition(i).toString();
                    namechange.setText(item);
                    dataList.clear();
                    adapter.notifyDataSetChanged();
                }
            });
    
    
            nameChange.addTextChangedListener(new TextWatcher() {
                @Override
                public void afterTextChanged(Editable editable) {
                    if (TextUtils.isEmpty(editable.toString())) {
                        dataList.clear();
                        adapter.notifyDataSetChanged();
                    }else{
                        SenderReceiver sr = new SenderReceiver(MapsActivity.this, url, namechange.getText().toString(),list);
                        sr.execute();
                    }
                }
            }