展会信息港展会大全

androidUI设计之旅 ----自定义EditText(多了一个清除按钮)
来源:互联网   发布日期:2016-01-06 19:14:47   浏览:1227次  

导读:csdn怎么了,上传的代码都是乱的。。。。。。。。。今天我要自定义一个EditText,主要实现的效果是,没输入字符的时候,后面没有清空按钮,输入的时候,就会出现。不废话,直接上图。一:效...

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);

}

@Override

public void afterTextChanged(Editable s) {

// TODO Auto-generated metho

if (s.length() > 0) {

mImageView.setVisibility(View.VISIBLE);

} else {

mImageView.setVisibility(View.GONE);

}

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

// TODO Auto-generated method stub

}

@Override

public void onTextChanged(CharSequence s, int start, int before, int count) {

// TODO Auto-generated method stub

}

@Override

public 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)在布局文件中引入:

如:

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港