Android MultiAutoCompleteTextView:除适配器以外的值

Android MultiAutoCompleteTextView:除适配器以外的值,android,multiautocompletetextview,Android,Multiautocompletetextview,我遇到一个问题,我有一个MultiAutoCompleteTextView,如下图所示: 因此,我从MultiAutoCompleteTextView的建议中选择城市名称,并将该项目添加到列表视图(如下所示)我想阻止输入其他条目,而不是ADAPTER值。 我用这种方式绑定代码,onClick的按钮我用逗号分隔值: private void initComp() { // GET DATA FROM DATABASE multiSelectCities = (

我遇到一个问题,我有一个
MultiAutoCompleteTextView
,如下图所示:

因此,我从
MultiAutoCompleteTextView
的建议中选择城市名称,并将该项目添加到
列表视图
(如下所示)我想阻止输入其他条目,而不是
ADAPTER
值。

我用这种方式绑定代码,
onClick
按钮
我用逗号分隔值:

private void initComp() { //              GET DATA FROM DATABASE

    multiSelectCities = (MultiAutoCompleteTextView) findViewById(R.id.activity_multiselect_city);
    btnGetCity = (Button) findViewById(R.id.activity_btn_slect_city);
    listCity = (ListView) findViewById(R.id.activity_get_city_list);
    btnGetCity.setOnClickListener(this);
    dbHelper = new DatabaseHelper(getApplicationContext());
    dbHelper.open();
    setName();
    // dbHelper.close();
}

public void setName() { // FOR SET THE NAME IN MULTISELECT TEXTVIEW
    final Cursor localcursor = dbHelper.getArea();

    if ((localcursor != null) && (localcursor.getCount() > 0)) {
        arrayOfString = new ArrayList < String > ();
        localcursor.moveToFirst();
        do {
            arrayOfString.add(localcursor.getString(localcursor.getColumnIndex(DatabaseHelper.CITY_NAME)) + "-" + localcursor.getString(localcursor.getColumnIndex(DatabaseHelper.CITY_COUNTRY)));
        } while (localcursor.moveToNext());

        this.multiSelectCities.setThreshold(3);
        adapter = new CityDataWithMultitextAdapter(this, arrayOfString);
        multiSelectCities.setAdapter(adapter);
        multiSelectCities.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

        /* localcursor.close(); */

    }


    @Override
    public void onClick(View v) { //SEARCH BUTTON CLICK AND STORE THE DATA INTO LISTVIEW

        if (!Utils.isEmpty(multiSelectCities)) {
            arrayList = multiSelectCities.getText().toString().substring(0, multiSelectCities.length() - 1).split(",");
            for (int i = 0; i < arrayList.length; i++) {
                selectedItems.add(arrayList[i].trim());
            }
        } else {
            Utils.displayToast(this, "Please Enter City/Cities");
        }

        CityListAdapter adapter = new CityListAdapter(this, selectedItems);
        listCity.setAdapter(adapter);
        multiSelectCities.setText("");
        listCity.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView <? > parent, View view, int position, long id) {

                Intent i = new Intent(CityListDataActivity.this, CityListDetail.class);
                i.putExtra("CITY_NAME", selectedItems.get(position).toString());
                startActivity(i);

            }
        });

    }
}
private void initComp(){//从数据库获取数据
multiSelectCities=(MultiAutoCompleteTextView)findViewById(R.id.activity\u multiselect\u city);
btnGetCity=(按钮)findViewById(R.id.activity\u btn\u slect\u city);
listCity=(ListView)findViewById(R.id.activity\u get\u city\u list);
btnGetCity.setOnClickListener(此);
dbHelper=newdatabasehelper(getApplicationContext());
dbHelper.open();
setName();
//dbHelper.close();
}
public void setName(){//用于在MULTISELECT TEXTVIEW中设置名称
最终游标localcursor=dbHelper.getArea();
if((localcursor!=null)&&(localcursor.getCount()>0)){
arrayOfString=newArrayList();
localcursor.moveToFirst();
做{
arrayOfString.add(localcursor.getString(localcursor.getColumnIndex(DatabaseHelper.CITY_NAME))+“-”+localcursor.getString(localcursor.getColumnIndex(DatabaseHelper.CITY_COUNTRY));
}while(localcursor.moveToNext());
这是多选城市设置阈值(3);
adapter=新的CityDataWithMultitextAdapter(此,arrayOfString);
多选。设置适配器(适配器);
setTokenizer(新的MultiAutoCompleteTextView.CommaTokenizer());
/*localcursor.close()*/
}
@凌驾
public void onClick(视图v){//SEARCH按钮单击并将数据存储到LISTVIEW中
如果(!Utils.isEmpty(多选城市)){
arrayList=multiSelectCities.getText().toString().substring(0,multiSelectCities.length()-1)。拆分(“,”;
for(int i=0;ipublic void onItemClick(AdapterView一种方法是通过以下方式消除在AutoCompleteTextView中写入的可能性:

<AutoCompleteTextView
            android:editable="false"
            android:inputType="none"
    ..../>

和onTouch call show adapter,它将显示城市列表

 private AutoCompleteTextView mAutoText;

 mAutoText.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                mAutoText.showDropDown();
                mAutoText.setListSelection(mPos);
                return false;
            }


        });
mAutoText.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            mAdapter.setSelection(position);
            mPos = position;

        }
    });
private AutoCompleteTextView mAutoText;
setOnTouchListener(新的OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
mAutoText.showDropDown();
mAutoText.setListSelection(mPos);
返回false;
}
});
mAutoText.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
mAdapter.选举(职位);
mPos=位置;
}
});

而不是适配器值的含义是什么?这里的意思是,您可以通过单击按钮添加任何字符串,它将添加到
列表视图中
这是某种搜索历史记录吗?如果用户从AutoCompleteTextView?mAdapter.setSelection(位置);未识别,您不能将其添加到列表中吗method@NinjaCoding