Как очистить текст в Android TextView?

Вопрос: Итак, у меня есть 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

Вопрос:

Итак, у меня есть 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 отлично работает, но текст никогда не очищается.
Я JTextArea что работа TextView будет аналогична JTextField или JTextArea где настройка текста на «» очищает его.

Как очистить текст?

Лучший ответ:

Попробуй это,

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

Да. Ваша проблема связана с 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

Чтобы ответить на ваш вопрос, я использую это в своих приложениях вместо того, чтобы устанавливать текст в («»), он очищает его с помощью getText().clear(); метод. Лично я использую это, потому что он выглядит более профессиональным и правильно использует ясную команду в android.

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

Чтобы уточнить, это работает с EditText, с TextView, просто выполните textview.setText(“”);

Ответ №3

Вы ошибетесь в методе onClick. Вы добавляете его для 1 кнопки, а затем проверяете, какая именно кнопка. Это никогда не будет вашей “чистой” кнопкой, поскольку она только прослушивает вашу кнопку “добавить” onclick.

Ответ №4

использование

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(«»); } }); }

Оцените статью
Добавить комментарий