版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】安卓開發(fā)中EditText的焦點改變處理(獲取焦點和失去焦點交互變化)
在安卓項目開發(fā)中,我們經(jīng)常會遇到一些對EditText的處理問題,包括對EditText的焦點的改變,我們需要結(jié)合實際情況對其進行獲得焦點,打開輸入法和失去焦點,關(guān)閉輸入法的交互操作。
我在這里介紹一種簡單的處理方式,希望在看了我的博文之后對您的需求有所幫助。上圖,首次進入界面上圖,點擊輸入框上圖,點擊確定按鈕首先,編寫布局文件:layout_edittext_focus.xml<RelativeLayout
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:id="@+id/focus_linear_root"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="50dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
>
<EditText
android:id="@+id/focus_editText_input"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:hint="請輸入"
android:paddingLeft="10dp"
android:singleLine="true"
/>
<TextView
android:id="@+id/focus_textView_ok"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:layout_marginRight="5dp"
android:gravity="center"
android:text="確定"
android:textSize="18sp"
/>
</LinearLayout>
<TextView
android:id="@+id/focus_textView_explain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/focus_linear_root"
android:padding="20dp"
android:textSize="11sp"
/>
</RelativeLayout>核心代碼:給EditText所在的父類布局添加如下屬性:android:focusable="true"
android:focusableInTouchMode="true"將焦點轉(zhuǎn)移到EditText的父類布局上,EditText在初始化的時候就不會獲取到焦點然后,編寫java代碼:EditTextFocusActivity.javapackage
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不會獲取焦點,沒有光標(biāo)\n\n"
+
"2.當(dāng)點擊EditText時,EditText重新獲取焦點,光標(biāo)出現(xiàn),并吊起輸入法\n\n"
+
"3.輸入完成后,點擊確定,EditText失去焦點,失去光標(biāo)并關(guān)閉輸入法\n\n"
+
"4.重新點擊EditText時,即可重復(fù)操作";
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);//設(shè)置輸入框可聚集
focus_editText_input.setFocusableInTouchMode(true);//設(shè)置觸摸聚焦
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);//設(shè)置輸入框不可聚焦,即失去焦點和光標(biāo)
if
(mInputMethodManager.isActive())
{
mInputMethodManager.hideSoftInputFromWindow(focus_editText_input.getWindowToken(),
0);//
隱藏輸入法
}
break;
}
}
}核心代碼:在EditText的點擊事件中添加如下代碼:focus_editText_input.setFocusable(true);//設(shè)置輸入框可聚集
focus_editText_input.setFocusableInTouchMode(true);//設(shè)置觸摸聚焦
focus_editText_input.requestFocus();//請求焦點
focus_editText_input.findFocus();//獲取焦點作用在于讓EditText在點擊的時候獲取到焦點。然后對輸入法做顯示處理。mInputMethodManager.showSoftInput(focus_editText_input,
InputMethodManager.SHOW_FORCED);//
顯示輸入法要使EditText失去焦點,只需要在其他的監(jiān)聽事件中添加如下代碼,設(shè)置不可聚集,關(guān)閉輸入法即可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度夜間商業(yè)街區(qū)治安巡邏打更服務(wù)協(xié)議范本4篇
- 2025年度個人信用貸款簡易合同范本年度更新3篇
- 二零二五年度車輛掛名轉(zhuǎn)讓過戶手續(xù)辦理服務(wù)協(xié)議4篇
- 2025廠房租賃安全協(xié)議書:消防安全責(zé)任與維護細(xì)則2篇
- 二零二五年度車輛安全技術(shù)研發(fā)獎勵合同4篇
- 二零二五年度砂石料行業(yè)碳排放交易合同范本3篇
- 自我驅(qū)動學(xué)習(xí)如何有效提升學(xué)生的自主學(xué)習(xí)能力?案例分析
- 科技園區(qū)巡察的智能化與標(biāo)準(zhǔn)化進程
- 百色2025年廣西百色邊境管理支隊招聘輔警10人筆試歷年參考題庫附帶答案詳解
- 2025年度個人信用保證合同范本5篇
- 八年級語文下冊 成語故事 第十五課 諱疾忌醫(yī) 第六課時 口語交際教案 新教版(漢語)
- 中考語文二輪復(fù)習(xí):記敘文閱讀物象的作用(含練習(xí)題及答案)
- 老年外科患者圍手術(shù)期營養(yǎng)支持中國專家共識(2024版)
- 子宮畸形的超聲診斷
- 2024年1月高考適應(yīng)性測試“九省聯(lián)考”數(shù)學(xué) 試題(學(xué)生版+解析版)
- (正式版)JBT 11270-2024 立體倉庫組合式鋼結(jié)構(gòu)貨架技術(shù)規(guī)范
- EPC項目采購階段質(zhì)量保證措施
- T-NAHIEM 101-2023 急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)
- 《復(fù)旦大學(xué)》課件
- 針灸與按摩綜合療法
- 四川2024年專業(yè)技術(shù)人員公需科目“數(shù)字經(jīng)濟與驅(qū)動發(fā)展”參考答案(通用版)
評論
0/150
提交評論