1. 程式人生 > >Android 關於EditText的imeOptions屬性以及設定"回車"按鈕的事件監聽器

Android 關於EditText的imeOptions屬性以及設定"回車"按鈕的事件監聽器

輸入法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按鈕軟鍵盤自動隱藏!另外,我的搜狗輸入法設定之後圖示還是跟沒設定之前一樣,都是一個回車鍵頭,但是功能變了,這就足夠了,切換到谷歌拼音輸入法之後顯示就正常了!

相關推薦

Android 關於EditText的imeOptions屬性以及設定"回車"按鈕事件監聽器

輸入法Enter鍵圖示的設定: 軟體盤的介面替換隻有一個屬性android:imeOptions,這個屬性的可以取的值有 normal,actionUnspecified,actionNone,actionGo,actionSearch,actionSend,actionN

jquery如何給物件動態新增屬性以及選擇器、事件的繫結

在工作用要用到給jd物件動態新增屬性的要求,在網上找到了一種解決方式,例項如下: 1、demo var aa="maker"; var bb=123; var lists={}; eval("lists."+aa+"="+bb); eval('('+"lists."+aa

android 捕獲返回(後退)按鈕事件的兩種方法

第一種方法: public void onBackPressed() {         //code......     } 第二種方法:     public boolean onKeyDown(int keyCode, KeyEvent event) {      

android】:android實現監聽多個按鈕事件

直接擼程式碼: 我有四個按鈕,下面的程式碼演示瞭如何將多個按鈕用一個事件監聽 在onCreate函式裡面 Button button1 = (Button)findViewBy

Android 筆記:按鈕事件以及案例

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layo

Android actionbar右上角按鈕設定監聽事件

         如何給Android右上角三個點的按鈕設定監聽事件,比如說,點選右上角三個點顯示退出按鈕,點選退出後結束整個activity(或退出程式)。         只需要在activity

JS添加、設置屬性以及鼠標移入移出事件

tel 小明 效果 blog enter classname tex ext http 源代碼: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t

Vue-cli中使用vConsole,以及設定JS連續點選控制vConsole按鈕顯隱功能實現

一、vue-cli腳手架中搭建的專案引入vConsole除錯 1.首先npm安裝,大家都懂的。 npm install vconsole 2.在合適的地方新建一個檔案vconsole.js,內容如下: import Vconsole from 'vconsole' let vConso

android 鍵盤屬性設定總結

其實很久之前就有遇到這樣一個問題,在APP中點選輸入框,經常出現鍵盤擠壓介面的問題, 之前解決後一直沒有作總結,最近又遇到了,發現網上說的大都是錯誤的,經過測試發現解決問題的配置如下,在Activity的配置中新增:android:windowSoftInputMode="stateHidden

Android之cardview屬性以及陰影處理

Android之cardview屬性以及陰影處理 開發中,專案會含有大量的圖片需要展示,需要圓角圖片,帶圓角的組合控制元件等.本文對cardview使用,以及屬性做開發記錄,方便後來者查閱(博主也容易忘東西) 先看效果圖(博主開發的一個VR中控平板端截圖) 一

文字屬性 以及背景圖設定 相對 絕對定位 042

文字屬性 :    文字對齊 text-align    有 none | center | left | right | justify   文字顏色  color   首行縮排   建議使用 em 即相對內容的大

ASP.NET多個Button的頁面,回車執行按鈕事件(轉)

主要有兩種實現方法分別是:JavaScript的方法與Panel的方法 一、JavaScript的方法 ①單輸入框(文字框)單按鈕的實現方法   以下功能實現:在輸入框中輸入內容之後,按回車鍵就執行按鈕事件!  在.aspx頁面的Head區域中新增: <

13 展訊Sprd設定-電池-應用事件變化資料收集(8.0 Android O)

1. UsageStatsService 的功能介紹 frameworks/base/services/usage/java/com/android/server/usage/UsageStatsService.java 2. SystemServer 啟動 Usa

android日期時間選擇,有多少天?多少年?以及設定時間選擇範圍(即最大值和最小值)

DatePickerDialog.OnDateSetListener bbrContactsBirthDateListener = new DatePickerDialog.OnDateSetListener() { @Override public void on

Android ConstraintLayout 屬性列表以及使用

大自然的搬運工 參考: http://www.jianshu.com/p/c60f787817ad https://juejin.im/post/5a1d9ba66fb9a044fb07819e app:layout_constraintLeft_toLeftOf 表示此

Android Studio裡設定按鈕,開發到手機上,點開按鈕,卻發現沒有跳到下一個介面,而是閃退的原因

如果你在介面設定了按鈕,開發到手機上,點開按鈕,卻發現沒有跳到下一個介面,而是閃退。 原因是因為你沒有在左圖的xml檔案裡把結果的目標activity這3行寫進去。寫進去之後再重新下載到手機上,就可以了。

ionic3 導航欄返回按鈕事件設定 多級頁面返回到指定的頁面

借鑑原文地址 多級頁面返回到指定的頁面 export class Page { @ViewChild(Navbar) navBar: Navbar; ① ionViewDidLoad() { ② this.navBar.backButtonCli

Android Studio的快捷鍵以及設定方式

如果你之前已經使用其他版本的Studio,那麼直接覆蓋就好了,如果是第一次使用,那麼參照Android Studio系列教程一進行安裝配置。 於此同時一起更新的還有SDK Tools等,開啟SDK Manager進行更新就OK。如果之前有在使用RC版本的Studio

【問題分析】 為什麼設定android:windowIsTranslucent屬性後Activity的退出動畫就不生效了

問題概述 當為Activity設定了android:windowIsTranslucent=true的style屬性後, 該Activity會變成一個透明視窗, 隨之而來的問題是Activity的退出動畫會不生效了, 哪怕在finish回撥中使用類似下面的程式碼為Activity配置自定義進

elasticsearch 建立索引以及設定相關 field屬性

package com.weibo.dip.kte; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; import org.elasticsearch.action.i