android通过TextWatcher监测输入框中输入的字符个数
2016-10-31 16:44
387 查看
大家或许会遇到这样的需求,监听文本框中输入的字符个数,这在一些应用的提交意见与建议这里可能会用到。
今天我们就用android提供的工具来实现这个功能,那就是TextWatcher,它提供了3个回调方法,分别对应为文本改变前,文本改变和文本改变之后,完美的满足了我们的需求。
首先,是布局文件activity_main.xml
下载完整代码请戳这里
今天我们就用android提供的工具来实现这个功能,那就是TextWatcher,它提供了3个回调方法,分别对应为文本改变前,文本改变和文本改变之后,完美的满足了我们的需求。
首先,是布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#0066FF" android:gravity="center_horizontal" android:layout_weight="0" android:padding="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试测试" android:textColor="#FFFFFF" android:textSize="20sp" /> </LinearLayout> <ScrollView android:id="@+id/scrollview" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_margin="10.0dp" android:layout_marginTop="48dp" android:layout_weight="1" android:background="@drawable/settings_bg" android:fillViewport="true" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@null" android:gravity="left|top" android:hint="亲,给点建议吧!么么哒!" android:inputType="textMultiLine" android:layout_weight="1" android:paddingBottom="4.0dp" android:paddingLeft="4.0dp" android:paddingRight="4.0dp" android:paddingTop="4.0dp" android:textSize="16.0sp" /> <TextView android:id="@+id/tips" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="5dp" android:gravity="center|right" android:layout_weight="0" android:padding="5dp" android:text="(160字以内)" android:textSize="16sp" /> </LinearLayout> </ScrollView> <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:layout_gravity="center" android:layout_marginBottom="10.0dp" android:layout_marginLeft="10.0dp" android:layout_marginRight="10.0dp" android:background="@drawable/btn_bg" android:text="提 交" android:textSize="18sp" /> </LinearLayout>接下来就是功能的实现了。
package com.tony.edittextwatcher; import android.os.Bundle; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import android.app.Activity; public class MainActivity extends Activity { private EditText edit; private TextView tips; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); edit = (EditText) findViewById(R.id.edit); tips = (TextView) findViewById(R.id.tips); btn = (Button) findViewById(R.id.btn); edit.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (s.length() == 0) { tips.setText("(160字以内)"); } else if (s.length() > 160) { Toast.makeText(MainActivity.this, "亲,写得太多啦", Toast.LENGTH_SHORT).show(); } else { tips.setText("(" + String.valueOf(0 + s.length()) + "/160字)"); } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { } }); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String content=edit.getText().toString(); if(!TextUtils.isEmpty(content)){ Toast.makeText(MainActivity.this, "提交成功!!!", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this, "亲,你还没写哦(づ ̄3 ̄)づ╭❤~", Toast.LENGTH_SHORT).show(); } } }); } }从代码中我们可以看到,只要给EditText添加一个文本监听,即addTextChangedListener,再在onTextChanged()这个方法中编写代码就可以了。至于要输入多少字符,这个可以自己设定。
下载完整代码请戳这里
相关文章推荐
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- 通过TextWatcher去观察输入框中输入的内容以及输入字符个数
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数(转)
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android 之 设置EditText最大可输入字符
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android TextWatcher监控EditText中的输入内容并限制其输入字符
- Android之UI学习篇四:EditText输入表情和特殊字符
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Android 之 设置EditText最大可输入字符
- 自定义程序实现Android EditText只允许输入指定字符
- android 中如何限制 EditText 最大输入字符数
- android 中如何限制 EditText 最大输入字符数(2)
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数