android基本控制項學習-----EditText

来源:http://www.cnblogs.com/huolan/archive/2016/01/03/5095659.html
-Advertisement-
Play Games

EditText的講解一、《實例一》:用戶登錄 屬性說明:很多屬性和TextView相同就不做過多的解釋,這裡就對這兩個屬性進行說明:android:hint="預設提示文本" android:textColorHint="#95A1AA",第一...


EditText的講解

一、《實例一》:用戶登錄

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#ffffff"
    android:gravity="center">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:background="@drawable/txt_radiuborder"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:orientation="vertical"
        android:paddingLeft="20dp"
        android:paddingRight="20dp">
        <EditText
            android:id="@+id/edit1"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:drawableLeft="@mipmap/ic_account"
            android:drawablePadding="60px"
            android:padding="5px"
            android:singleLine="true"
            android:hint="用戶名"
            android:textColorHint="#98f5ff"
            android:textSize="30sp"/>
        <EditText
            android:id="@+id/edit2"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:drawableLeft="@mipmap/ic_password"
            android:drawablePadding="60px"
            android:padding="5px"
            android:singleLine="true"
            android:hint="密碼"
            android:textColorHint="#98f5ff"
            android:textSize="30sp"/>
    </LinearLayout>
    <Button
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="30dp"
        android:text="登錄"
        android:textSize="30sp"
        android:textColor="#000000"
        android:textStyle="bold"
        android:background="@drawable/txt_radiuborder"/>
</LinearLayout>

屬性說明:很多屬性和TextView相同就不做過多的解釋,這裡就對這兩個屬性進行說明:

android:hint="預設提示文本" android:textColorHint="#95A1AA",第一個屬性設置提示信息,第二個屬性設置提示信息的顏色

二、常用的屬性詳解

(1)獲得焦點後選擇所有的文本內容android:selectAllOnFocus="true"

(2)限制EditText的輸入類型android:inputType="phone"

  類型描述:文本型

android:inputType="none"  
android:inputType="text"  
android:inputType="textCapCharacters"  
android:inputType="textCapWords"  
android:inputType="textCapSentences"  
android:inputType="textAutoCorrect"  
android:inputType="textAutoComplete"  
android:inputType="textMultiLine"  
android:inputType="textImeMultiLine"  
android:inputType="textNoSuggestions"  
android:inputType="textUri"  
android:inputType="textEmailAddress"  
android:inputType="textEmailSubject"  
android:inputType="textShortMessage"  
android:inputType="textLongMessage"  
android:inputType="textPersonName"  
android:inputType="textPostalAddress"  
android:inputType="textPassword"  
android:inputType="textVisiblePassword"  
android:inputType="textWebEditText"  
android:inputType="textFilter"  
android:inputType="textPhonetic"
數字型:
android:inputType="number" android:inputType="numberSigned" android:inputType="numberDecimal" android:inputType="phone"//撥號鍵盤 android:inputType="datetime" android:inputType="date"//日期鍵盤 android:inputType="time"//時間鍵盤
(3)設置最小行,最大行,單行,多行,自動換行
最小行的行數:android:minLines="3"
最大的行數:android:maxLines="3"
設置字與字的水平間隔:android:textScaleX="1.5"
設置字與字的垂直間隔:android:textScaleY="1.5"
設置英文字母大寫類型的屬性:android:capitalize 預設none,還有三個可選項
  • sentences:僅第一個字母大寫
  • words:每一個單詞首字母大小,用空格區分單詞
  • characters:每一個英文字母都大寫

(4)EditText四周的間隔距離與內部文字與邊框間的距離:和TextView一樣padding

(5)EditText的游標控制:在Java代碼中使用setSelection(int index)或者setSelection(int start,int end),其中一個參數的是設置游標位置的,兩個參數的是設置起始位置與結束位置的中間括的部分,即部分選中!

當然我們也可以調用setSelectAllOnFocus(true);讓EditText獲得焦點時選中全部文本!
另外我們還可以調用setCursorVisible(false);設置游標不顯示
還可以調用getSelectionStart()和getSelectionEnd獲得當前游標的前後位置

三、實例二:帶有表情文本輸入框

佈局文件

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#ffffff"
    android:gravity="center">
    <Button
        android:id="@+id/btn1"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="30dp"
        android:text="添加表情"
        android:textSize="30sp"
        android:textColor="#000000"
        android:textStyle="bold"
        android:background="@drawable/txt_radiuborder"/>
     <EditText
         android:id="@+id/edit1"
         android:layout_width="match_parent"
         android:layout_height="100dp"
         android:padding="5px"
         android:singleLine="true"/>

</LinearLayout>

Java文件:

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ImageSpan;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity {
    private EditText editText1;
    private Button btn1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText1 = (EditText) findViewById(R.id.edit1);
        btn1 = (Button) findViewById(R.id.btn1);
//        設置監聽事件
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SpannableString ss = new SpannableString("img");
                Drawable drawable = MainActivity.this.getResources().getDrawable(R.mipmap.ic_launcher);
                drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
                ImageSpan imageSpan = new ImageSpan(drawable,ImageSpan.ALIGN_BASELINE);
                ss.setSpan(imageSpan,0,3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                int cursor = editText1.getSelectionStart();
                editText1.getText().insert(cursor,ss);
            }
        });
    }
}

效果圖:

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 正則表達式正則表達式是對字元串操作的一種邏輯公式, 用事先定義好的一些特定字元、及這些特定字元的組合, 組成一個"規則字元串",這個"規則字元串"用來表達對字元串的一種過濾邏輯,正則表達式就是用於描述這些規則的工具,或者說, 正則表達式就是記錄文本規則的代碼.在開發中, 我們經常會有查找符合某些複雜...
  • 新手的煩惱你不懂 - - ## 這個問題著實變態,就是普通的 UITableViewController ,數據是靜態的,運行時動態添加了一個 UIView(xib)作為 tableFooterView ,關鍵是豎屏的時候事件完全不受影響,橫豎屏一切換就收不到事件鳥。
  • 複製無處不在,用 Storyboard 做差不多的界面難免會複製,今天莫名其妙的崩潰鳥!
  • //UIImageView 用來顯示圖片的控制項 UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(10,_label.frame.size.height+10+10, self.window.frame.size....
  • 效果如圖目前旋轉和銳化的界面還沒做。編輯模塊包含圖片裁剪、旋轉、銳化。一、點擊美化圖片首頁【編輯】,進入具體操作界面 FWFunctionViewController *vc = [[FWFunctionViewController alloc] initWithImage:self.imag...
  • [轉載請註明出處]sdk是別人的,我只是下載來集成一下.smssdk下載網站:http://www.mob.com/(也有其他很多網站有類似SDK,譬如https://www.juhe.cn/等等,可以自行百度,我在這裡就演示一下MOB官網的)此網站號稱smssdk免費,可是進去一看...........
  • //// ViewController.m// 計算器//屏幕的寬和高#define SCREEN_W self.view.frame.size.width#define SCREEN_H self.view.frame.size.height#import "ViewController.h"@i...
  • Button講解:一、在我們實際的使用button的時候經常會對button不同狀態會有不同的顯示,在講解Button前,首先對drawable下麵的statelistdrawable的相關知識講一下,StateListDrawable在一中drawable下麵的一種資源文件,它的關鍵節點selec...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...