问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android 怎样edittext 键盘失去焦点时自动关闭

发布网友 发布时间:2022-05-03 07:38

我来回答

2个回答

热心网友 时间:2023-10-14 16:54

 

  android 怎样edittext 键盘失去焦点时自动关闭

  软键盘的原理

  软键盘其实是一个Dialog。InputMethodService为我们的输入法创建了一个Dialog,并且对某些参数进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统会对当前的主窗口进行调整,以便留出相应的空间来显示该Dialog在底部,或者全屏。

  2.活动主窗口调整

  Android定义了一个属性windowSoftInputMode,
用它可以让程序控制活动主窗口调整的方式。我们可以在配置文件AndroidManifet.xml中对Activity进行设置。这个属性的设置将会影响两件事情:

  1>软键盘的状态——隐藏或显示。

  2>活动的主窗口调整——是否减少活动主窗口大小以便腾出空间放软键盘或是否当活动窗口的部分被软键盘覆盖时它的内容的当前焦点是可见的。

  故该属性的设置必须是下面列表中的一个值,或一个“state…”值加一个“adjust…”值的组合。在任一组设置多个值,各个值之间用|分开。

  "stateUnspecified":The state of the soft keyboard (whether it is hidden or
visible) is not specified. The system will choose an appropriate state or rely
on the setting in the theme. This is the default setting for the behavior of the
soft keyboard. 软键盘的状态(隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。这个是软件盘行为的默认设置。

  "stateUnchanged":The soft keyboard is kept in whatever state it was last
in, whether visible or hidden, when the activity comes to the fore.
软键盘被保持上次的状态。

  "stateHidden":The soft keyboard is hidden when the user chooses the
activity — that is, when the user affirmatively navigates forward to the
activity, rather than backs into it because of leaving another activity.
当用户选择该Activity时,软键盘被隐藏。

  "stateAlwaysHidden":The soft keyboard is always hidden when the activity's
main window has input focus. 软键盘总是被隐藏的。

  "stateVisible":The soft keyboard is visible when that's normally
appropriate (when the user is navigating forward to the activity's main window).
软键盘是可见的。

  "stateAlwaysVisible":The soft keyboard is made visible when the user
chooses the activity — that is, when the user affirmatively navigates forward to
the activity, rather than backs into it because of leaving another activity.
当用户选择这个Activity时,软键盘是可见的。

  "adjustUnspecified":It is unspecified whether the activity's main window
resizes to make room for the soft keyboard, or whether the contents of the
window pan to make the currentfocus visible on-screen. The system will
automatically select one of these modes depending on whether the content of the
window has any layout views that can scroll their contents. If there is such a
view, the window will be resized, on the assumption that scrolling can make all
of the window's contents visible within a smaller area. This is the default
setting for the behavior of the main window.
它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为设置。也就是说,系统自动决定是采用平移模式还是压缩模式,决定因素在于内容是否可以滚动。

  "adjustResize":(压缩模式)The activity's main window is always resized to make
room for the soft keyboard on screen. 当软键盘弹出时,要对主窗口调整屏幕的大小以便留出软键盘的空间。

  "adjustPan":(平移模式:当输入框不会被遮挡时,该模式没有对布局进行调整,然而当输入框将要被遮挡时,窗口就会进行平移。也就是说,该模式始终是保持输入框为可见。)The
activity's main window is not resized to make room for the soft keyboard.
Rather, the contents of the window are automatically panned so that the current
focus is never obscured by the keyboard and users can always see what they are
typing. This is generally less desirable than resizing, because the user may
need to close the soft keyboard to get at and interact with obscured parts of
the window.
该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。。

  3.侦听软键盘的显示隐藏

  有时候,借助系统本身的机制来实现主窗口的调整并非我们想要的结果,我们可能希望在软键盘显示隐藏的时候,手动的对布局进行修改,以便使软键盘弹出时更加美观。这时就需要对软键盘的显示隐藏进行侦听。

  我们可以借助软键盘显示和隐藏时,对主窗口进行了重新布局这个特性来进行侦听。如果我们设置的模式为压缩模式,那么我们可以对布局的onSizeChanged函数进行跟踪,如果为平移模式,那么该函数可能不会被调用。

  4.EditText默认不弹出软件键盘

  方法一:

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

  例如:

  android:label="@string/app_name"

  android:windowSoftInputMode="adjustUnspecified|stateHidden"

  android:configChanges="orientation|keyboardHidden">

  方法二:

  让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);

  5.EditText始终不弹出软件键盘

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

  edit.setInputType(InputType.TYPE_NULL);

热心网友 时间:2023-10-14 16:54

在我们的应用中,有时候一进入一个页面, EditText默认就会自动获取焦点。弹出输入法框,用户体验很不好,
那么如何取消这个默认行为呢?
ps:这篇文字是一年前写的,现在有网友再问这个问题,我进行重新编辑--2014.05.07,目前有更好的办法,第一种方法局限性很强,大家可以使用第二种方法

第一种方法:.在网上找了好久,有点监听软键盘事件的方法,有调用 clearFouse()方法,但是测试了都不行!在对应的 xml中也找不到相应的属性可以关闭这个默认行为。
后来研究了一下,在其父控件下,添加如下的属性,就可以完美解决:
android:focusable="true"
android:focusableInTouchMode="true"
举例如下:

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:focusable

="true" android:focusableInTouchMode="true"
>

<EditText
android:id="@+id/et_enter_msg_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>

<Button
android:id="@+id/sent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send"
/>

</LinearLayout>

第二种方法:直接关闭输入法
?

1
2
3
4
5
6
7
8

private void closeInputMethod() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
boolean isOpen = imm.isActive();
if (isOpen) {
// imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);//没有显示则显示
imm.hideSoftInputFromWindow(mobile_topup_num.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}

调用这个方法体就行了,具体if语句里面的几个参数,我就借用一个网友的日志来写把(在此感谢)
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);
[java] view plaincopy
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘

3、调用隐藏系统默认的输入法

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); (WidgetSearchActivity是当前的Activity)

4、获取输入法打开的状态

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开

好了,祝大家玩的开心

热心网友 时间:2023-10-14 16:54

 

  android 怎样edittext 键盘失去焦点时自动关闭

  软键盘的原理

  软键盘其实是一个Dialog。InputMethodService为我们的输入法创建了一个Dialog,并且对某些参数进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统会对当前的主窗口进行调整,以便留出相应的空间来显示该Dialog在底部,或者全屏。

  2.活动主窗口调整

  Android定义了一个属性windowSoftInputMode,
用它可以让程序控制活动主窗口调整的方式。我们可以在配置文件AndroidManifet.xml中对Activity进行设置。这个属性的设置将会影响两件事情:

  1>软键盘的状态——隐藏或显示。

  2>活动的主窗口调整——是否减少活动主窗口大小以便腾出空间放软键盘或是否当活动窗口的部分被软键盘覆盖时它的内容的当前焦点是可见的。

  故该属性的设置必须是下面列表中的一个值,或一个“state…”值加一个“adjust…”值的组合。在任一组设置多个值,各个值之间用|分开。

  "stateUnspecified":The state of the soft keyboard (whether it is hidden or
visible) is not specified. The system will choose an appropriate state or rely
on the setting in the theme. This is the default setting for the behavior of the
soft keyboard. 软键盘的状态(隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。这个是软件盘行为的默认设置。

  "stateUnchanged":The soft keyboard is kept in whatever state it was last
in, whether visible or hidden, when the activity comes to the fore.
软键盘被保持上次的状态。

  "stateHidden":The soft keyboard is hidden when the user chooses the
activity — that is, when the user affirmatively navigates forward to the
activity, rather than backs into it because of leaving another activity.
当用户选择该Activity时,软键盘被隐藏。

  "stateAlwaysHidden":The soft keyboard is always hidden when the activity's
main window has input focus. 软键盘总是被隐藏的。

  "stateVisible":The soft keyboard is visible when that's normally
appropriate (when the user is navigating forward to the activity's main window).
软键盘是可见的。

  "stateAlwaysVisible":The soft keyboard is made visible when the user
chooses the activity — that is, when the user affirmatively navigates forward to
the activity, rather than backs into it because of leaving another activity.
当用户选择这个Activity时,软键盘是可见的。

  "adjustUnspecified":It is unspecified whether the activity's main window
resizes to make room for the soft keyboard, or whether the contents of the
window pan to make the currentfocus visible on-screen. The system will
automatically select one of these modes depending on whether the content of the
window has any layout views that can scroll their contents. If there is such a
view, the window will be resized, on the assumption that scrolling can make all
of the window's contents visible within a smaller area. This is the default
setting for the behavior of the main window.
它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为设置。也就是说,系统自动决定是采用平移模式还是压缩模式,决定因素在于内容是否可以滚动。

  "adjustResize":(压缩模式)The activity's main window is always resized to make
room for the soft keyboard on screen. 当软键盘弹出时,要对主窗口调整屏幕的大小以便留出软键盘的空间。

  "adjustPan":(平移模式:当输入框不会被遮挡时,该模式没有对布局进行调整,然而当输入框将要被遮挡时,窗口就会进行平移。也就是说,该模式始终是保持输入框为可见。)The
activity's main window is not resized to make room for the soft keyboard.
Rather, the contents of the window are automatically panned so that the current
focus is never obscured by the keyboard and users can always see what they are
typing. This is generally less desirable than resizing, because the user may
need to close the soft keyboard to get at and interact with obscured parts of
the window.
该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。。

  3.侦听软键盘的显示隐藏

  有时候,借助系统本身的机制来实现主窗口的调整并非我们想要的结果,我们可能希望在软键盘显示隐藏的时候,手动的对布局进行修改,以便使软键盘弹出时更加美观。这时就需要对软键盘的显示隐藏进行侦听。

  我们可以借助软键盘显示和隐藏时,对主窗口进行了重新布局这个特性来进行侦听。如果我们设置的模式为压缩模式,那么我们可以对布局的onSizeChanged函数进行跟踪,如果为平移模式,那么该函数可能不会被调用。

  4.EditText默认不弹出软件键盘

  方法一:

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

  例如:

  android:label="@string/app_name"

  android:windowSoftInputMode="adjustUnspecified|stateHidden"

  android:configChanges="orientation|keyboardHidden">

  方法二:

  让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);

  5.EditText始终不弹出软件键盘

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

  edit.setInputType(InputType.TYPE_NULL);

热心网友 时间:2023-10-14 16:54

在我们的应用中,有时候一进入一个页面, EditText默认就会自动获取焦点。弹出输入法框,用户体验很不好,
那么如何取消这个默认行为呢?
ps:这篇文字是一年前写的,现在有网友再问这个问题,我进行重新编辑--2014.05.07,目前有更好的办法,第一种方法局限性很强,大家可以使用第二种方法

第一种方法:.在网上找了好久,有点监听软键盘事件的方法,有调用 clearFouse()方法,但是测试了都不行!在对应的 xml中也找不到相应的属性可以关闭这个默认行为。
后来研究了一下,在其父控件下,添加如下的属性,就可以完美解决:
android:focusable="true"
android:focusableInTouchMode="true"
举例如下:

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:focusable

="true" android:focusableInTouchMode="true"
>

<EditText
android:id="@+id/et_enter_msg_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>

<Button
android:id="@+id/sent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send"
/>

</LinearLayout>

第二种方法:直接关闭输入法
?

1
2
3
4
5
6
7
8

private void closeInputMethod() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
boolean isOpen = imm.isActive();
if (isOpen) {
// imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);//没有显示则显示
imm.hideSoftInputFromWindow(mobile_topup_num.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}

调用这个方法体就行了,具体if语句里面的几个参数,我就借用一个网友的日志来写把(在此感谢)
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);
[java] view plaincopy
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘

3、调用隐藏系统默认的输入法

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); (WidgetSearchActivity是当前的Activity)

4、获取输入法打开的状态

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开

好了,祝大家玩的开心
怎样让edittext点击后不弹出键盘

方法二:让EditText失去焦点,使用EditText的clearFocus方法 例如:EditText edit=(EditText)findViewById(R.id.edit); edit.clearFocus();方法三:强制隐藏Android输入法窗口 例如:EditText edit=(EditText)findViewById(R.id.edit); InputMethodManager imm = (InputMethodManager)getSystemServic...

android edittext关闭键盘后焦点还在怎么办

EditText是在获得焦点时弹出软键盘,你可以在初始化activity的时候把焦点放在其他控件上,获得焦点可以在xml里面配置 android:getFocus="true";拼写可能不对,大意差不错,手上没有IDE

如何设置Android软键盘的默认不弹出

在开发Anroid的时候,当你打开一个界面的时候,屏幕的焦点会自动停留在第一个EditText中,Android的软键盘默认会自动弹出,用户第一眼连界面都没有看清楚,软键盘就弹出来了,这就影响到了用户体验,我们需要设置打开界面的时候,当EditText获取焦点的时候,不弹出软键盘,其实也很简单,代码如下:// 默...

怎么让edittext主动获取焦点

查了一下资料,第一个EditText控件往往会自动获得焦点,有些情况这是很不美观的,如果我们想让Edittext 默认不自动获取焦点,可以在EditText控件之前的一个控件的属性上加上:android:focusable="true"android:focusableInTouchMode="true"例如:我在EditText控件前的一个Button控件上加上以上两句后就不会...

android怎样控制输入法的弹出和隐藏

1.让EditText失去焦点,使用EditText的clearFocus方法 2. 强制隐藏Android输入法窗口,在IME类中我们通过 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 实例化输入法控制对象,通过hideSoftInputFromWindow来控制,其中第一个参数绑定的为需要隐藏输入法的Edit...

如何使edittext失去焦点

EditText初始化时候失去焦点:只需要在布局文件中设置属性android:focusable="false"也可以在代码中由开发者根据需求设置一定的条件,当条件满足后,动态的设置EditText失去焦点。示例代码:EditText et = (EditText) findViewById(R.id.et);et.clearFocus();et.setFocusable(false);这种控制EditText的操作...

android 输入框失去焦点,怎样让键盘不自

1. 在activity layout xml文件中,EditText的前面定义:&lt;LinearLayout android:focusable="true" android:focusableInTouchMode="true" android:layout_width="0px" android:layout_height="0px" /&gt; 2. 在EditText中添加nextFocusUp与nextFocusLeft &lt;EditText android:layout_width="wra...

android edittext输入完成后让光标消失

首先需要监听输入框的焦点变化,其次再根据焦点是否存在设置其光标显示 代码如下:其中editText是你的editText的id.editText.setCursorVisible(true); --&gt; 设置光标可见(默认), 为false即不可见 代码如下:editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { Override public void onFocus...

在Android开发中如何移除EditText上的输入焦点

//---阻止EditText得到焦点,以防输入法弄丑画面 textView1.setFocusable(true);textView1.setFocusableInTouchMode(true);textView1.requestFocus(); // 初始不让EditText得焦点 textView1.requestFocusFromTouch();// 让焦点指到任一个textView1中 ...

android的edittext怎么设置不默认被选中?

(EditText)findViewById(R.id.editText);\x0d\x0aeditText.clearFocus();\x0d\x0aeditText.setSelected(false);\x0d\x0a表示将清除EditText的焦点\x0d\x0a\x0d\x0a3.可以直接在Activity的声明中,设置默认不弹出输入框\x0d\x0aandroid:windowSoftInputMode="stateHidden|adjustResize"

android的edittext android activity 安卓开发edittext edittext在哪里 安卓edittext属性 获取edittext输入的内容 edittext控件找不到 获取edittext的值 edittext多个
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
重本和一本一样吗 永劫无间是第几人称:小说叙事视角分析 名字未定(第三人称双男主 周霖 温宿) 我得了职业病〈轻度苯中毒〉,有职业病诊断证明书.工伤认定期间我没上... ...后来感觉麻烦,就直接去药店买药,他开了很多 这是十年前的功放,求高手看看那几个孔是什么? 车子断保险之后再交是一样的吗 车险断交后再续交 女性查激素六项什么时候检查 有一个素质很低下的室友是一种什么样的体验? 新鲜笋子煮麻辣鱼怎么做 笋子煮麻辣鱼的做法 android的sdk24怎么关闭软键盘 干旱地区种植什么植物会加剧土地沙漠化 android 怎样监听软键盘关闭 不耐旱不耐涝的土地种什么好? 安卓怎么永久关闭键盘灯 什么是干旱农业?干旱农业要怎么发展? Android有AutoCompleteTextView有没有什么办法关闭软键盘 在土质情况不好的地方,可以种植哪些蔬菜? 电饭煲做各种菜 怎么设置android 键盘输入法禁止关闭 怎么禁用载安卓自带键盘啊 干旱土地适合种植什么 android 软键盘输入完成后怎么关闭 用电饭煲做什么菜最好吃?(汤除外) Android的Activity一打开就出现讨嫌的软键盘,怎样将其关闭 基础消保保证金险是什么? 淘宝“消费者保障服务”!开通未交保证金怎么取消 基础消保保证金险赔付追偿 已经签署淘宝消保协议可是未缴纳保证金如何取消协议 基础消保保证金险是什么 寒冷干旱地区种植什么果树合适? android edittext关闭键盘怎么就变成了一行 在土地干旱的情况下,对种植的花生有什么样的影响? 干旱地区种植什么植物会加剧土地沙漠化? android能不能屏蔽掉键盘按键 沙土地适合种什么农作物 护士挂职需要什么条件? 主管护师晋升条件有哪些? 领克03二手车保值吗 哪些车被称为国产保值神车? 领克06和致炫x哪个更保值 石家庄45中是职高还是普高 石家庄中考45中校考是什么意思 石家庄长安区西兆通51和45那个中学好? 石家庄市四十五中今年录取分数线 石家庄高中四十五中和二十二中哪个好呀? 石家庄四十五中地址 物理的问题 桂林米粉里面的肉是怎么做的 my intimate friend keke百度在线翻译