EditText控件的使用

本文介绍如何使用EditText控件实现微博评论界面的字数限制,包括提示信息、最大字数、密码模式等功能,并通过代码实例进行详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EditText控件用于获取用户的输入

继承自TextView 因此自动继承了android:text属性、获取控件文本内容的getText()方法和设置控件文本内容的setText()方法


常用属性:

android:text

android:hint   用于设置显示在EditText上的提示信息

android:numeric  只能用于输入数字

android:maxLength  限制编辑框中输入的字数

android:password  密码模式

android:lines   可输入的行数


实例:用EditText实现微博评论界面的限制

           要求提示输入的文字数 并且最多只能为140字

           超过字数不能提交并显示警告信息



首先我们定义一个界面布局

由一个EditText框   两个TextView框   一个按钮 组成

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/etText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:lines="8"
        android:hint="请输入评论内容"
        android:maxLength="140">

        <requestFocus />
    </EditText>

    <LinearLayout                注意:这个LinearLayout 表示TextView按钮Button是水平排列的
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <LinearLayout            注意:这个LinearLayout 表示两个TextView是上下垂直排列的
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/tvMsg1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                 />
           <TextView
                android:id="@+id/tvMsg2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                 />
            
        </LinearLayout>
            <Button
                android:id="@+id/btnSend"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/btnSend"
                android:paddingRight="15dip"
                />
    </LinearLayout>

</LinearLayout>


然后我们在代码中实现EditText的事件监听


public class EditTest extends Activity{
    private EditText edContent=null;
    private TextView tvContent=null;   //第一行TextView 用于显示字数提示:字数统计:25/140字
    private TextView tvMsg=null;        //第二行TextView  用于显示警告信息:还可输入:115字  或  最多只能输入140字
    private Button btnSend=null;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.eidt_layout);
        
        edContent=(EditText) findViewById(R.id.etText);
        tvContent=(TextView) findViewById(R.id.tvMsg1);
        tvMsg=(TextView) findViewById(R.id.tvMsg2);
        btnSend=(Button) findViewById(R.id.btnSend);

        edContent.addTextChangedListener(new TextWatcher() {      //注意: 这里是EditText 的监听和回调方法
            
            @Override
            public void onTextChanged(CharSequence str, int arg1, int arg2, int arg3) {   //EditText 回调方法要实现3个方法

                                                                                                                                        一般我们实现onTextChanged
                int len=str.length();
                tvContent.setText("字数统计:"+len+"/140");

                //当字数达到140时显示警告信息
                if(len==140){
                    tvMsg.setText("输入的字数已达到上限!");
                }else{
                    tvMsg.setText("还可以输入:"+(140-len)+"个字");
                }
            }
            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
            }
            @Override
            public void afterTextChanged(Editable arg0) {
            }
        });
        btnSend.setOnClickListener(new OnClickListener() {
      

          //按钮的监听和回调方法    
            @Override
            public void onClick(View arg0) {
                int len=edContent.getText().toString().length(); //获得输入的长度
                if(len==0 || "请输入评论内容".equals(edContent.getText())){
                    Toast.makeText(EditTest.this, "评论内容不能为空", 2000).show();
                }else{
                    Toast.makeText(EditTest.this, "发表成功!", 2000).show();
                }
            }
        });
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值