androidUI設計之旅 ----自訂EditText(多了一個清除按鈕)

來源:互聯網
上載者:User

csdn怎麼了,上傳的代碼都是亂的。。。。。。。。。

今天我要自訂一個EditText,主要實現的效果是,沒輸入字元的時候,後面沒有清空按鈕,輸入的時候,就會出現。不廢話,直接。

一:效果介紹:

 

這個效果是不是很酷呢?把它封裝成一個類,就不用每次都寫了。直接當控制項用了。

二:代碼

 

(1)user_definedet.xml

 

        


 

(2)UserDefineEditText.java
package com.example.userdefinedet;import android.content.Context;import android.text.Editable;import android.text.TextWatcher;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.EditText;import android.widget.ImageView;import android.widget.LinearLayout;public class UserDefineEditText extends LinearLayout implements TextWatcher,OnClickListener {private EditText mEdiText;private ImageView mImageView;public UserDefineEditText(Context context) {super(context);initView();}public UserDefineEditText(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);initView();}public UserDefineEditText(Context context, AttributeSet attrs) {super(context, attrs);initView();}// 初始化視圖private void initView() {View view = View.inflate(getContext(), R.layout.user_definedet, null);mEdiText = (EditText) view.findViewById(R.id.user_define_et);mImageView = (ImageView) view.findViewById(R.id.user_define_iv);mImageView.setVisibility(View.GONE);mEdiText.addTextChangedListener(this);mImageView.setOnClickListener(this);addView(view);}@Overridepublic void afterTextChanged(Editable s) {// TODO Auto-generated methoif (s.length() > 0) {mImageView.setVisibility(View.VISIBLE);} else {mImageView.setVisibility(View.GONE);}}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {// TODO Auto-generated method stub}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {// TODO Auto-generated method stub}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.user_define_iv:mEdiText.setText();break;default:break;}}public String getText() {return mEdiText.getText().toString();}}

(3)使用這個控制項的兩種方法:
(1)new UserDefineEditText(this);
this:指的是“上下文”
(2)在布局檔案中引入:
如:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.