真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

安卓開發(fā)中EditText的焦點改變處理(獲取焦點和失去焦點交互變化)

    在安卓項目開發(fā)中,我們經(jīng)常會遇到一些對EditText的處理問題,包括對EditText的焦點的改變,我們需要結(jié)合實際情況對其進行獲得焦點,打開輸入法和失去焦點,關閉輸入法的交互操作。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供安龍企業(yè)網(wǎng)站建設,專注與網(wǎng)站設計、成都網(wǎng)站建設、HTML5建站、小程序制作等業(yè)務。10年已為安龍眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設公司優(yōu)惠進行中。

    我在這里介紹一種簡單的處理方式,希望在看了我的博文之后對您的需求有所幫助。

安卓開發(fā)中EditText的焦點改變處理(獲取焦點和失去焦點交互變化)

上圖,首次進入界面

安卓開發(fā)中EditText的焦點改變處理(獲取焦點和失去焦點交互變化)

上圖,點擊輸入框

安卓開發(fā)中EditText的焦點改變處理(獲取焦點和失去焦點交互變化)

上圖,點擊確定按鈕

首先,編寫布局文件:

layout_edittext_focus.xml



    

        

        
    

    

核心代碼:

給EditText所在的父類布局添加如下屬性:

android:focusable="true"
android:focusableInTouchMode="true"

將焦點轉(zhuǎn)移到EditText的父類布局上,EditText在初始化的時候就不會獲取到焦點

然后,編寫java代碼:

EditTextFocusActivity.java

package com.example.listdelectdemo;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;

/**
 * EditText焦點處理頁
 */
public class EditTextFocusActivity extends Activity implements OnClickListener {

	/**
	 * 輸入框
	 */
	private EditText focus_editText_input;
	/**
	 * 確定按鈕
	 */
	private TextView focus_textView_ok;
	/**
	 * 說明
	 */
	private TextView focus_textView_explain;
	
	/**
	 * 輸入法管理器
	 */
	private InputMethodManager mInputMethodManager;

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

		initUtil();
		initView();
	}

	/**
	 * 初始化必須工具
	 */
	private void initUtil() {
	        //初始化輸入法
		mInputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
	}

	/**
	 * 控件初始化
	 */
	private void initView() {
		focus_editText_input = (EditText) findViewById(R.id.focus_editText_input);
		focus_editText_input.setOnClickListener(this);
		focus_textView_ok = (TextView) findViewById(R.id.focus_textView_ok);
		focus_textView_ok.setOnClickListener(this);
		focus_textView_explain = (TextView) findViewById(R.id.focus_textView_explain);
		String explain = "說明:\n\n1.首次進入界面時,EditText不會獲取焦點,沒有光標\n\n"
				+ "2.當點擊EditText時,EditText重新獲取焦點,光標出現(xiàn),并吊起輸入法\n\n"
				+ "3.輸入完成后,點擊確定,EditText失去焦點,失去光標并關閉輸入法\n\n"
				+ "4.重新點擊EditText時,即可重復操作";
		focus_textView_explain.setText(explain);
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.focus_editText_input://輸入框
			focus_editText_input.setFocusable(true);//設置輸入框可聚集
			focus_editText_input.setFocusableInTouchMode(true);//設置觸摸聚焦
			focus_editText_input.requestFocus();//請求焦點
			focus_editText_input.findFocus();//獲取焦點
			mInputMethodManager.showSoftInput(focus_editText_input, InputMethodManager.SHOW_FORCED);// 顯示輸入法
			break;
		case R.id.focus_textView_ok://確定按鈕
			focus_editText_input.setFocusable(false);//設置輸入框不可聚焦,即失去焦點和光標
			if (mInputMethodManager.isActive()) {
				mInputMethodManager.hideSoftInputFromWindow(focus_editText_input.getWindowToken(), 0);// 隱藏輸入法
			}
			break;
		}
	}

}

核心代碼:

在EditText的點擊事件中添加如下代碼:

focus_editText_input.setFocusable(true);//設置輸入框可聚集
focus_editText_input.setFocusableInTouchMode(true);//設置觸摸聚焦
focus_editText_input.requestFocus();//請求焦點
focus_editText_input.findFocus();//獲取焦點

作用在于讓EditText在點擊的時候獲取到焦點。

然后對輸入法做顯示處理。

mInputMethodManager.showSoftInput(focus_editText_input, InputMethodManager.SHOW_FORCED);// 顯示輸入法

要使EditText失去焦點,只需要在其他的監(jiān)聽事件中添加如下代碼,設置不可聚集,關閉輸入法即可:

focus_editText_input.setFocusable(false);//設置輸入框不可聚焦,即失去焦點和光標
if (mInputMethodManager.isActive()) {
	mInputMethodManager.hideSoftInputFromWindow(focus_editText_input.getWindowToken(), 0);// 隱藏輸入法
}

這就是一個簡單EditText焦點改變處理方法。

文章中存在的某些不足之處,還望提出指導性意見。


當前題目:安卓開發(fā)中EditText的焦點改變處理(獲取焦點和失去焦點交互變化)
網(wǎng)站網(wǎng)址:http://weahome.cn/article/pdghdh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部