我在OnClickListener方法中实现了AutoCompleteTextView。但是,一旦我单击AutoCompleteTextView并且仍然出现键盘,我看不到下拉文本。我喜欢的是显示下拉文本,键盘应该是不可见的。可能有什么不对? 我的源代码是
public void runNextTask(){
final View addView = getLayoutInflater().inflate(R.layout.addnewtracker, null);
final TrackerInfo newInfo = new TrackerInfo();
//autocompletetextview 1
final String[] type = {"Vehicle", "Person", "Pet", "Others"};
final AutoCompleteTextView actvtype1 = (AutoCompleteTextView) addView.findViewById(R.id.autoCompleteTextView1);
actvtype1.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(arg1.getWindowToken(), 0);
ArrayAdapter<String> typeadapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,type);
actvtype1.setThreshold(1);
actvtype1.setAdapter(typeadapter);
actvtype1.setTextColor(Color.BLACK);
}
});
//autocompletetextview 2
final String[] model = {"TS102", "TS103"};
final AutoCompleteTextView actvtype2 = (AutoCompleteTextView) addView.findViewById(R.id.autoCompleteTextView2);
actvtype2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager)getSystemService(Service.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(actvtype2.getWindowToken(), 0);
ArrayAdapter<String> modeladapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,model);
actvtype2.setThreshold(1);
actvtype2.setAdapter(modeladapter);
actvtype2.setTextColor(Color.BLACK);
}
});
new AlertDialog.Builder(this).setTitle("New Tracker").setView(addView)
.setPositiveButton("ADD", new DialogInterface.OnClickListener()
{
@SuppressLint("SimpleDateFormat")
public void onClick(DialogInterface dialog, int whichButton)
{
TextView temp;
temp = (TextView)addView.findViewById(R.id.IDeditText);
newInfo.setIdnumber(temp.getText().toString());
newInfo.setDescription(actvtype1.getText().toString());
temp = (TextView)addView.findViewById(R.id.SimCardEdit);
newInfo.setSimcardnumber(temp.getText().toString());
newInfo.setModel(actvtype2.getText().toString());
simnumber = temp.getText().toString();
if(!simnumber.matches("[+0-9]+")){
return;
}
SimpleDateFormat df = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
Date today = Calendar.getInstance().getTime();
String reportDate = df.format(today);
newInfo.setTime(reportDate);
newInfo.setActivationStatus();
if(!newInfo.getIdnumber().equals("") && !newInfo.getModel().equals("")
&& !newInfo.getDescription().equals("") && !newInfo.getSimcardnumber().equals(""))
{
addNewTracker(newInfo);
}
}
}).setNegativeButton("Cancel", null).show();
}
我的xml如下
<?xml version="1.0" encoding="utf-8"?>
<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: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:text=""
/>
答案 0 :(得分:0)
尝试添加autocompletetextview(xml)
<requestFocus />
答案 1 :(得分:0)
现在所有的工作都是我想要的。
我有两个EditText
和两个AutoCompleteTextView
。
我想仅为EditText
显示键盘,但是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);
actvtype1.setInputType(InputType.TYPE_NULL);
final ArrayAdapter<String> typeadapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_multiple_choice,type);
actvtype1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
actvtype1.showDropDown();
actvtype1.setAdapter(typeadapter);
actvtype1.setTextColor(Color.BLACK);
}
});
String[] model = {"TS102", "TS103"};
final AutoCompleteTextView actvtype2 = (AutoCompleteTextView) addView.findViewById(R.id.autoCompleteTextView2);
actvtype2.setInputType(InputType.TYPE_NULL);
final ArrayAdapter<String> modeladapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_multiple_choice,model);
actvtype2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
actvtype2.showDropDown();
actvtype2.setAdapter(modeladapter);
actvtype2.setTextColor(Color.BLACK);
}
});
final AlertDialog.Builder alert = new AlertDialog.Builder(this).setTitle("New Tracker").setView(addView);
alert.setPositiveButton("ADD", new DialogInterface.OnClickListener()
{
@SuppressLint("SimpleDateFormat")
public void onClick(DialogInterface dialog, int whichButton)
{
TextView temp;
temp = (TextView)addView.findViewById(R.id.IDeditText);
newInfo.setIdnumber(temp.getText().toString());
newInfo.setDescription(actvtype1.getText().toString());
temp = (TextView)addView.findViewById(R.id.SimCardEdit);
newInfo.setSimcardnumber(temp.getText().toString());
newInfo.setModel(actvtype2.getText().toString());
if(!(actvtype2.getText().toString().equals("TS102")||actvtype2.getText().toString().equals("TS103")))
{
Toast.makeText(getBaseContext(), "Model type doesn't match",
Toast.LENGTH_SHORT).show();
return;
}
simnumber = temp.getText().toString();
if(!simnumber.matches("[+0-9]+")){
return;
}
SimpleDateFormat df = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
Date today = Calendar.getInstance().getTime();
String reportDate = df.format(today);
newInfo.setTime(reportDate);
newInfo.setActivationStatus();
if(!newInfo.getIdnumber().equals("") && !newInfo.getModel().equals("")
&& !newInfo.getDescription().equals("") && !newInfo.getSimcardnumber().equals(""))
{
addNewTracker(newInfo);
}
}
}).setNegativeButton("Cancel", null).show();
xml是
<?xml version="1.0" encoding="utf-8"?>
<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="200dp"
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=""/>
<View
android:layout_width="1dp"
android:layout_height="50dp">
</View>