版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
【移動應用開發(fā)技術(shù)】安卓開發(fā)中EditText的焦點改變處理(獲取焦點和失去焦點交互變化)
在安卓項目開發(fā)中,我們經(jīng)常會遇到一些對EditText的處理問題,包括對EditText的焦點的改變,我們需要結(jié)合實際情況對其進行獲得焦點,打開輸入法和失去焦點,關閉輸入法的交互操作。
我在這里介紹一種簡單的處理方式,希望在看了我的博文之后對您的需求有所幫助。上圖,首次進入界面上圖,點擊輸入框上圖,點擊確定按鈕首先,編寫布局文件: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不會獲取焦點,沒有光標\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)聽事件中添加如下代碼,設置不可聚集,關閉輸入法即可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版土地流轉(zhuǎn)承包項目合作開發(fā)投資合同范本3篇
- 2025年代理費用協(xié)議范本
- 2025年銷售人員任職協(xié)議書:互聯(lián)網(wǎng)銷售團隊建設協(xié)議2篇
- 2025年度風力發(fā)電場建設與運營合同范本4篇
- 二零二五年藝術(shù)品鑒定兼職人員保密責任書3篇
- 基于2025年度房產(chǎn)政策的商品房銷售合同
- 2025年度跨境電子商務稅收風險擔保協(xié)議4篇
- 二零二五年度直播主播與影視作品合作合同
- 2025年度供應鏈金融貨物沖抵貨款風險控制協(xié)議
- 二零二五年度門面房房屋租賃押金合同
- 寒潮雨雪應急預案范文(2篇)
- 垃圾車駕駛員聘用合同
- 2024年大宗貿(mào)易合作共贏協(xié)議書模板
- 變壓器搬遷施工方案
- 單位轉(zhuǎn)賬個人合同模板
- 八年級語文下冊 成語故事 第十五課 諱疾忌醫(yī) 第六課時 口語交際教案 新教版(漢語)
- 2024年1月高考適應性測試“九省聯(lián)考”數(shù)學 試題(學生版+解析版)
- EPC項目采購階段質(zhì)量保證措施
- T-NAHIEM 101-2023 急診科建設與設備配置標準
- 四川2024年專業(yè)技術(shù)人員公需科目“數(shù)字經(jīng)濟與驅(qū)動發(fā)展”參考答案(通用版)
- 煤炭裝卸服務合同
評論
0/150
提交評論