输入法Enter键图标的设置:
软件盘的界面替换只有一个属性android:imeOptions,这个属性的可以取的值有
normal,actionUnspecified,actionNone,actionGo,actionSearch,actionSend,actionNext,actionDone
actionUnspecified 未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED.
actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE
actionGo 去往,对应常量EditorInfo.IME_ACTION_GO
actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH
actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND
actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT
actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE
我的示例程序是把一个TextView和EditText来回切换,且内容相通,多亏某位csdn网友的想法才找到这么犀利的解决办法,废话不说,以下看我的示例程序
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:longClickable="true"
android:textSize="20px"
android:text="编辑我一下"
/>
<EditText
android:id="@+id/et"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:saveEnabled="true"
android:textSize="20px"
android:inputType="text"
android:imeOptions="actionDone"
android:visibility="gone"
android:text="大学物理_01"
/>
</LinearLayout>
MainActivity.java
package com.example.edittext;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.View.OnLongClickListener;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
public class MainActivity extends Activity {
private EditText et=null;
private TextView tv=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et=(EditText)findViewById(R.id.et);
tv=(TextView)findViewById(R.id.tv);
tv.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
tv.setVisibility(View.GONE);
et.setVisibility(View.VISIBLE);
et.setText(tv.getText().toString());
et.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
et.setVisibility(View.GONE);
tv.setVisibility(View.VISIBLE);
tv.setText(et.getText().toString());
}
return false;
}
});
return false;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
实现了TextView和EditTex的来回切换,花了一个上午的时间,真心不容易,以后的路还很长哇!
当设置android:imeOptions="actionDone"之后按下done按钮软键盘自动隐藏!另外,我的搜狗输入法设置之后图标还是跟没设置之前一样,都是一个回车键头,但是功能变了,这就足够了,切换到谷歌拼音输入法之后显示就正常了!