android自定义控件之edittext
来源:互联网 发布:淘宝美人药妆激素 编辑:程序博客网 时间:2024/06/06 08:56
代码如下:
<span style="font-size:18px;"><span style="font-size:18px;">package com.sunday.customs;import com.example.customs.R;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}</span></span>自定义的edittext:
<span style="font-size:18px;">package com.sunday.customs;import com.example.customs.R;import android.content.Context;import android.graphics.Rect;import android.graphics.drawable.Drawable;import android.text.Editable;import android.text.TextWatcher;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.widget.EditText;public class EditTextWithDel extends EditText {private final static String TAG = "EditTextWithDel";private Drawable imgInable;private Drawable imgAble;private Context mContext;public EditTextWithDel(Context context) {super(context);mContext = context;init();}public EditTextWithDel(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);mContext = context;init();}public EditTextWithDel(Context context, AttributeSet attrs) {super(context, attrs);mContext = context;init();}private void init() {imgInable = mContext.getResources().getDrawable(R.drawable.delete_gray);imgAble = mContext.getResources().getDrawable(R.drawable.delete);////添加监听器addTextChangedListener(new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void afterTextChanged(Editable s) {setDrawable();}});setDrawable();}//设置删除图片private void setDrawable() {if(length() < 1)//此函数功能是在edittext中加图片,并设置图片在里面的位置setCompoundDrawablesWithIntrinsicBounds(null, null, imgInable, null);elsesetCompoundDrawablesWithIntrinsicBounds(null, null, imgAble, null);} // 处理删除事件 @Override public boolean onTouchEvent(MotionEvent event) { if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) { int eventX = (int) event.getRawX(); int eventY = (int) event.getRawY(); Log.e(TAG, "eventX = " + eventX + "; eventY = " + eventY); Rect rect = new Rect(); getGlobalVisibleRect(rect); rect.left = rect.right - 50; if(rect.contains(eventX, eventY)) setText(""); } return super.onTouchEvent(event); } @Override protected void finalize() throws Throwable { super.finalize(); }}</span>
布局文件:
<span style="font-size:18px;"><span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.sunday.customs.EditTextWithDel android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:hint="输入" android:padding="7dp" android:singleLine="true" /> <com.sunday.customs.EditTextWithDel android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:hint="输入" android:padding="7dp" android:singleLine="true" /></LinearLayout></span></span>
最终效果图:
当点击右侧衩号,清楚文本。
0 0
- android自定义控件之edittext
- Android控件之自定义EditText
- 自定义控件之EditText
- android控件之EditText
- android 之 EditText控件
- Android控件之EditText
- Android控件之EditText
- Android控件之EditText
- android控件之EditText
- 自定义android控件EditText 自定义边框 背景
- 自定义android控件EditText 自定义边框 背景
- android之控件EditText学习
- Android控件系列之EditText
- Android之EditText控件学习
- Android控件详解之EditText
- Android之EditText控件使用
- Android常用控件之EditText
- 自定义android控件EditText边框背景
- HTTP详解(3)-http1.0 和http1.1 区别
- SQL 的跨域连接数据表
- zookeeper分布式锁(五)
- JS只能输入数字,数字和字母等的正则表达式
- 使用eclipse与Jlink调试S3C2440 2410
- android自定义控件之edittext
- get乱码用tomcat配置文件解决
- 利用SAE的Memcache缓存微信的access_token
- hdu 1171 Big Event in HDU DP
- SDUTOJ 2077 迷瘴 贪心
- selenium2webdriver对Wrapped元素的click()不起作用怎么办?
- 条件接收系统原理图
- Python中的文本处理
- DTS推出最新转码技术DTS:X