如何清除Android TextView中的文本?

时间:2013-07-04 07:41:53

标签: android android-edittext onclicklistener

所以我有一个像这样的Android程序:

package com.example.androiddemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

public class AndroidDemo extends Activity {
    String[] messages = {"Short Text",
                         "I want to show some really long text" +
                         "on the display of the phone. " +
                         "Having run out of ideas on what to type, " +
                         "I am adding this text which makes absolutely " +
                         "no sense."};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final Button add = (Button) findViewById(R.id.addBtn);
        final Button clear = (Button) findViewById(R.id.clrBtn);
        final EditText text = (EditText) findViewById(R.id.display);

        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(v == add){
                    text.setText(messages[new java.util.Random().nextInt(messages.length)]);
                }else if(v == clear){
                    text.setText("");
                }
            }
        });
    }
}  

TextView添加文字的按钮完全正常,但文字永远不会清除 我的信念是TextView的操作类似于JTextFieldJTextArea,其中将文本设置为""将其清除。

如何清除文字?

5 个答案:

答案 0 :(得分:11)

试试这个,

public class AndroidDemo extends Activity implements OnClickListener{
Button add, clear;
EditText text;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        add = (Button) findViewById(R.id.addBtn);
        clear = (Button) findViewById(R.id.clrBtn);
        text = (EditText) findViewById(R.id.display);
        add.setOnClickListener(this);
        clear.setOnClickListener(this);
        }
@Override
public void onClick(View v){
    if(v == add){
        text.setText(messages[new java.util.Random().nextInt(messages.length)]);
    }else if(v == clear){
        text.setText("");
    }
    }
  }

答案 1 :(得分:3)

是的。您的问题与onClickListener有关。

 add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(v == add){
                    text.setText(messages[new java.util.Random().nextInt(messages.length)]);
                }else if(v == clear){
                    text.setText("");
                }
            }
        });

在这种情况下,if(v == clear)始终为false。您必须为View.OnClickListener()视图/按钮注册clear,或者将您的活动实施View.OnClickListener并将按钮this设置为setOnClickListener

答案 2 :(得分:3)

要回答您的问题,我在我的应用中使用此功能,而不是将文本设置为(""),而是使用getText().clear();方法清除它。就个人而言,我使用它是因为它看起来更专业,并在android中正确使用clear命令。

clearButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    editText.getText().clear();
                }
            });

为了澄清,这适用于EditText,使用TextView,只需要做textview.setText(“”);

答案 3 :(得分:1)

你的onClick方法出错了。您将其添加为1按钮,然后检查它是哪个按钮。它永远不会是你的“清除”按钮,因为它只会在你的“添加”按钮上点击。

答案 4 :(得分:0)

使用



protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final TextView tv=(TextView)findViewById(R.id.textView);
        Button btnclear=(Button)findViewById(R.id.btnClear);

	btnclear.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                tv.setText("");
            }
        });
}