您的位置:首页 > 其它

阻止点击numberpicker(edittext)时候弹出输入法

2013-03-21 16:10 447 查看
1.首先说说默认不显示输入法,这里通常又三种:

在 AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为 adjustUnspecified|stateHidden

  < activity android:name=".Main"
    android:label="@string/app_name"
    android:windowSoftInputMode="adjustUnspecified|stateHidden"
    android:configChanges="orientation|keyboardHidden"> //这里我没有输入也是可以的
  < intent-filter>
    < action android:name="android.intent.action.MAIN" />
    < category android:name="android.intent.category.LAUNCHER" />
  < /intent-filter>
  < /activity>

方法二:

  让 EditText失去焦点,使用EditText的clearFocus方法

  例如:
EditText edit=(EditText)findViewById(R.id.edit);
  edit.clearFocus();

方法三:

  强制隐藏Android输入法窗口

例如:
  EditText edit=(EditText)findViewById(R.id.edit);
  InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
  imm.hideSoftInputFromWindow(edit.getWindowToken(),0);

  然后就说说numberpicker。找个是android3.0之后才有的一个控件,总的来说并不美观(很多人会用想numberwheelpicker之类的控件),但还是蛮使用的。很多情况下并不希望点击numberpicker时候弹出输入法。所以又下面的解决办法,本质还是处理edittext哦:

numberPicker = (NumberPicker)findViewById(R.id.numPicker);
numberPicker.setMaxValue(100);
numberPicker.setMinValue(0);
numberPicker.setWrapSelectorWheel(false);
String[] nums = new String[100];
for(int i=0; i<nums.length; i++)
nums[i] = Integer.toString(i);
numberPicker.setDisplayedValues(nums);
numberPicker.setFocusable(false);
numberPicker.setValue(1);
((EditText) numberPicker.getChildAt(1)).setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
// do nothing
}
});
// Suppress soft keyboard from the beginning
((EditText) numberPicker.getChildAt(1)).setInputType(InputType.TYPE_NULL);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐