zoukankan      html  css  js  c++  java
  • Android控件之EditText

    Android控件之EditText

    应用实例

    新建一个activity,有一个空间edittext和两个button。点击其中的一个button,显示edittext的文本;点击另一个button,删除exittext的最后一个字符。


    应用程序代码

     1 package com.skywang.control;
     2 
     3 import android.os.Bundle;
     4 import android.app.Activity;
     5 import android.view.Menu;
     6 import android.widget.Toast;
     7 import android.widget.Button;
     8 import android.widget.EditText;
     9 import android.view.View;
    10 import android.view.View.OnClickListener;
    11 import android.util.Log;
    12 import android.text.TextUtils;
    13 import android.text.Spannable;
    14 import android.text.Selection;
    15 
    16 public class EditTextTest extends Activity implements View.OnClickListener{
    17     private static final String TAG = "SKYWANG";
    18     
    19     private EditText mEdit;
    20     private Button mBtnShow;
    21     private Button mBtnDelete;
    22     @Override
    23     protected void onCreate(Bundle savedInstanceState) {
    24         super.onCreate(savedInstanceState);
    25         setContentView(R.layout.edit_text_test);
    26         
    27         // 获取edittext
    28         mEdit = (EditText)findViewById(R.id.edit_test);
    29         
    30         // 获取show按钮
    31         mBtnShow = (Button)findViewById(R.id.btn_show);
    32         // 设置show按钮的监听函数
    33         mBtnShow.setOnClickListener(this);
    34         
    35         // 获取delete按钮
    36         mBtnDelete = (Button)findViewById(R.id.btn_delete);
    37         // 设置delete按钮的监听函数
    38         mBtnDelete.setOnClickListener(this);
    39         
    40         // 打印log信息
    41         Log.d(TAG, "on create");
    42     }
    43     
    44     @Override
    45     public void onClick(View v) {
    46         switch(v.getId()) {
    47             case R.id.btn_show: {
    48                 Log.d(TAG, "click button show! text:"+mEdit.getText().toString());
    49                 Toast.makeText(getApplicationContext(), mEdit.getText().toString(), Toast.LENGTH_LONG).show();
    50                 break;    
    51             }
    52             case R.id.btn_delete: {
    53                 if (!TextUtils.isEmpty(mEdit.getText())) {
    54                     String text = mEdit.getText().toString();
    55                     int len = text.length() - 1;
    56                     mEdit.setText(mEdit.getText().subSequence(0, len));
    57                     // 设置光标位置
    58                     setEditTextIndicator(mEdit, mEdit.length());
    59                 }
    60                 
    61                 break;    
    62             }
    63         }
    64     }
    65     
    66     /*
    67      * 设置EditText光标位置。
    68      * 若输入的光标位置无效,则将光标设置到EditText末尾。
    69      * 参数说明:
    70      *     et —— 被设置的EditText
    71      *     index —— 设置后的光标位置
    72      */
    73     private void setEditTextIndicator (EditText et, int index) {
    74         CharSequence text = et.getText();
    75         if (text instanceof Spannable) {
    76             Spannable spanText = (Spannable)text;
    77             
    78             try {
    79                 Selection.setSelection(spanText, index);
    80             }catch (IndexOutOfBoundsException e) {
    81                 Selection.setSelection(spanText, text.length());
    82             }
    83         }    
    84     }
    85 }
    View Code

    layout文件

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical">
     6     
     7     <EditText
     8         android:id="@+id/edit_test"
     9         android:layout_width="match_parent"
    10         android:layout_height="wrap_content"
    11         android:textSize="32sp"
    12         android:hint="@string/hello_world" />
    13     
    14     <Button
    15         android:id="@+id/btn_show"
    16         android:layout_width="wrap_content"
    17         android:layout_height="wrap_content"
    18         android:text="@string/text_show" 
    19         />
    20 
    21     <Button
    22         android:id="@+id/btn_delete"
    23         android:layout_width="wrap_content"
    24         android:layout_height="wrap_content"
    25         android:text="@string/text_delete" 
    26         />
    27     
    28 </LinearLayout>
    View Code

    manifest文件

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3     package="com.skywang.control"
     4     android:versionCode="1"
     5     android:versionName="1.0" >
     6 
     7     <uses-sdk
     8         android:minSdkVersion="8"
     9         android:targetSdkVersion="17" />
    10 
    11     <application
    12         android:allowBackup="true"
    13         android:icon="@drawable/ic_launcher"
    14         android:label="@string/app_name"
    15         android:theme="@style/AppTheme" >
    16         <activity
    17             android:name="com.skywang.control.EditTextTest"
    18             android:label="@string/app_name" >
    19             <intent-filter>
    20                 <action android:name="android.intent.action.MAIN" />
    21 
    22                 <category android:name="android.intent.category.LAUNCHER" />
    23             </intent-filter>
    24         </activity>
    25     </application>
    26 
    27 </manifest>
    View Code

    程序效果截图

    点击下载:源代码

     

  • 相关阅读:
    一、链式
    C#链式编程
    五、通过密码访问API
    四.二、控制台
    一、bootstrap-datepicker
    悔录
    四、IDS4建立Authorization server和Client
    三、IDS4建立authorization server
    一、前端请求后台方式
    【2019-10-09】思想是为了克服不懂而存在的
  • 原文地址:https://www.cnblogs.com/skywang12345/p/edittext.html
Copyright © 2011-2022 走看看