所以我有一个像这样的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
的操作类似于JTextField
或JTextArea
,其中将文本设置为""
将其清除。
如何清除文字?
答案 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("");
}
});
}