0

我的布局中有两个 EditText 和两个 AutoCompleteTextView。但我喜欢只为 AutoCompleteTextView 隐藏键盘。但它没有隐藏键盘,当我触摸 AutoCompleteTextView 时,键盘仍然出现,我该如何隐藏键盘?我实施为

final View addView = getLayoutInflater().inflate(R.layout.addnewtracker, null);                     
        final TrackerInfo newInfo = new TrackerInfo();          

        String[] type = {"Vehicle", "Person", "Pet", "Others"}; 
        final AutoCompleteTextView actvtype1 = (AutoCompleteTextView) addView.findViewById(R.id.autoCompleteTextView1);             
        ArrayAdapter<String> typeadapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_multiple_choice,type);          
        actvtype1.setThreshold(1);
        actvtype1.setAdapter(typeadapter);
        actvtype1.setTextColor(Color.BLACK);            

        String[] model = {"TS102", "TS103"};
        final AutoCompleteTextView actvtype2 = (AutoCompleteTextView) addView.findViewById(R.id.autoCompleteTextView2);
        ArrayAdapter<String> modeladapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_multiple_choice,model);
        actvtype2.setThreshold(1);
        actvtype2.setAdapter(modeladapter);
        actvtype2.setTextColor(Color.BLACK);            

        final AlertDialog.Builder alert = new AlertDialog.Builder(this).setTitle("New Tracker").setView(addView);
        InputMethodManager keyboard = (InputMethodManager)
        getSystemService(Context.INPUT_METHOD_SERVICE);
        keyboard.hideSoftInputFromInputMethod(actvtype1.getWindowToken(), 0);
        keyboard.hideSoftInputFromInputMethod(actvtype2.getWindowToken(), 0); 
        alert.setPositiveButton("ADD", new DialogInterface.OnClickListener() 
        {


            @SuppressLint("SimpleDateFormat")
            public void onClick(DialogInterface dialog, int whichButton) 
            {                   


            }
        }).setNegativeButton("Cancel", null).show();

我的布局如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/IDnumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/IDnumber" />

    <EditText
        android:id="@+id/IDeditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" 
        android:inputType="text">        
        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/SimCardNum"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Sim_card_number" />

    <EditText
        android:id="@+id/SimCardEdit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="text"
         />

    <TextView
        android:id="@+id/description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/description" />   

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:ems="10"
        android:dropDownHeight="100dp"  
        android:text=""/>

    <TextView
        android:id="@+id/model"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Tracker_model"         
        />    
    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:ems="10"         
        android:dropDownHeight="100dp"  
        android:text=""/>



</LinearLayout>
4

4 回答 4

8

我不确定这是否正是您要查找的内容,但这是用于强制键盘在屏幕底部弹出的代码:

actvtype1.setInputType(InputType.TYPE_NULL);

当您单击该 TextView 时,这肯定会阻止键盘出现。希望能帮助到你!

于 2013-11-07T09:54:13.103 回答
2

要求将重点放在自动文本上:

   <AutoCompleteTextView
            android:id="@+id/autoCompleteTextView2"
                ..
                .../>
         <requestFocus />

然后使用以下代码:

 if(autocomplete.hasfocus()){
    hideSoftKeyboard();
    }


    private void hideSoftKeyboard() {
        if(getCurrentFocus()!=null && getCurrentFocus() instanceof EditText)
        {
             InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
             imm.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0);
        }

     }
于 2013-11-07T10:10:38.013 回答
0

在您的 Autocomplete TextView onClick 中使用此代码

  YourClass.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
于 2016-04-26T05:32:56.263 回答
0

onItemClick在单击列表项后隐藏键盘AutoCompleteTextView

public void onItemClick(AdapterView<?> adapterViewIn, View viewIn, int indexSelected, long arg3) {
     InputMethodManager imm = (InputMethodManager) getSystemService(viewIn.getContext().INPUT_METHOD_SERVICE);
     imm.hideSoftInputFromWindow(viewIn.getApplicationWindowToken(), 0);
     // whatever else should be done
}
于 2016-12-30T18:52:50.840 回答