How do I clear the text in Android TextView?
Solution 1
Try this,
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("");
}
}
}
Solution 2
To answer your question, I use this method in my apps.
Instead of setting the text to ("")
, it clears the stored value using the getText().clear();
method. Personally, I use this because it looks more professional and makes proper use of the clear command in android.
clearButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.getText().clear();
}
});
EDIT: The original post had the tag 'EditText', so I answered the question with that in mind.
This works with EditText, With a TextView, just call textview.setText("");
Solution 3
Yes it is. Your problem is related to the 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("");
}
}
});
in this case if(v == clear)
is always false. You have to register a View.OnClickListener()
for the clear
view/button, or make your Activity implements View.OnClickListener
and set for both the button this
as setOnClickListener
Solution 4
You're going wrong with your onClick method. You are adding it for 1 button, and then checking which button it is. It is never going to be your 'clear' button, since it only listens to your 'add' button onclick.
Solution 5
Use
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("");
}
});
}
An SO User
Updated on October 07, 2020Comments
-
An SO User over 3 years
So I have an Android program like so:
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(""); } } }); } }
The button to add text to the
TextView
works perfectly fine however the text never clears.
My belief was that the operation ofTextView
would be analogous toJTextField
orJTextArea
where setting the text to""
clears it.How do I clear the text?