我希望能够从EditText中删除焦点.例如,如果键盘出现,并且用户使用后退按钮隐藏它,我希望焦点和光标消失.怎么做到呢?
我有一个带有一些虚拟文本的EditText.当用户点击它时我希望它被选中,这样当用户开始输入时,虚拟文本就会被删除.
我怎样才能做到这一点?
我正在尝试在使用NumberPicker输入数值时停用软键盘(出于美观原因).这是我的layout-xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="30dp"
android:layout_marginTop="30dp" >
<NumberPicker
android:id="@+id/repetitionPicker"
android:layout_width="40dp"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/repetitions_short_divider"
android:textAppearance="?android:attr/textAppearanceMedium" />
<NumberPicker
android:id="@+id/weightPicker"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/pounds"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<Button
android:id="@+id/saveButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/save" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
最后这是我尝试在onCreate() - 方法中阻止键盘的代码:
// hide keyboard
View.OnClickListener disableKeyBoardListener = new View.OnClickListener() {
public void onClick(View v) {
((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
};
((EditText) weightPicker.getChildAt(1)).setInputType(InputType.TYPE_NULL);
((EditText) …Run Code Online (Sandbox Code Playgroud) android android-widget android-layout android-softkeyboard android-edittext
我android:windowSoftInputMode="stateVisible"在Manifest中有一个Edittext .现在,当我开始活动时,将显示键盘.如何隐藏它?我无法使用,android:windowSoftInputMode="stateHidden因为当键盘可见时,最小化应用程序并恢复它键盘应该是可见的.我试过了
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
但它不起作用.
我有一个相对简单的问题.我有一个包含很多EditText的活动.当我打开活动时,它会自动聚焦到第一个EditText并显示虚拟键盘.
我怎么能阻止这个?
在我的Android应用程序中,它自动聚焦我的布局中的第一个按钮,给它一个橙色轮廓.如何最好用XML设置初始焦点,这可以设置为空吗?
在我的应用程序中,我有一个单独的EditText,一些TextViews按钮和一个微调器.我相信,我的EditText会获得焦点,因为它是此活动中唯一可聚焦的视图.我的EditText节目带有橙色边框和光标在场上.
现在我想从这个字段中删除焦点(我不希望光标和边框显示).有没有办法做到这一点?
通过做button.seFocusableInTouchMode()和我能够专注于按钮button.requestFocus().但这突出了按钮,显然不是我想要的.
我有Android应用,其中一个布局包含Linearlayout,ScrollView,TextView,EditView和Button.当我从一个活动呼叫到另一个活动时,调用并设置layout我描述的内容.
我想知道默认EditView选择的活动呼叫何时.并打开softkeyboard.我不想在活动开始时打开那个键盘.但我想打开softkeyboard触摸事件EditView.
我怎样才能做到这一点?
当我点击它时,editText没有失去我的应用程序中的焦点,它始终具有橙色边框和黑色线条光标..我根据这周围的editText做了一个LinearLayout: 停止EditText从活动启动获得焦点 因此它不会专注于应用程序的启动..
这是我的代码:
final EditText et = (EditText)findViewById(R.id.EditText01);
final InputMethodManager imm = (InputMethodManager) getSystemService(
INPUT_METHOD_SERVICE);
et.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
}
});
et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasfocus) {
if(hasfocus) {
imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
} else {
imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是,当我点击editText之外的任何地方时,似乎没有调用onFocusChange!
我有两个编辑文本,第一个总是有焦点.我试过clearFocus()但它不起作用.
xml是这样的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/barcode"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/enterbarcode" >
</EditText>
<View
android:layout_width="fill_parent"
android:layout_height="10dp" >
</View>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/or"
android:textAppearance="?android:attr/textAppearanceMedium" >
</TextView>
<View
android:layout_width="fill_parent"
android:layout_height="10dp" >
</View>
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/entername" >
</EditText>
<Button
android:id="@+id/ok"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:background="@drawable/button"
android:text="@string/forward"
android:textStyle="bold" >
</Button>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我在这里读到了关于虚拟项目的答案,但我不知道如何将它应用于我的特定xml.