[英]TextView not showing text in a particular listener
我試圖讓textview顯示一條消息5秒鍾,然后消失。
public class MainActivity extends AppCompatActivity {
public Date start;
public Date end;
Handler handle = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button startButton = (Button) findViewById(R.id.startButton);
Button endButton = (Button) findViewById(R.id.stopButton);
// other variables
final TextView errTextView = (TextView) findViewById(R.id.errorTextView);
final DateFormat df = new SimpleDateFormat("MM/dd/yy");
final Thread t = new Thread(new Runnable() {
@Override
public void run() {
//call function in MainActivity class
handle.postDelayed(this, 100);
}
});
final Thread errt = new Thread(new Runnable() {
@Override
public void run() {
errTextView.setText("");
}
});
startButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if (start != null)
errTextView.setText("Timer Reset");
handler.postDelayed(errt, 5000);
start = new Date();
dateEditText.setText(df.format(start));
hoursEditText.setText("");
errTextView.setText("");
handle.post(t);
}
});
endButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if (start == null) {
errTextView.setText("Timer must be started before pressing Stop. Press Start.");
}
else {
start = null;
}
if(handle != null)
handle.removeCallbacksAndMessages(null);
}
});
如果用戶按下開始按鈕,開始將獲得當前時間並保存。 因此,如果用戶再次按下開始按鈕,則開始按鈕不應為null。 如果用戶按兩次,該條件應成立, errTextView
應顯示“ Timer reset”,並且處理程序應告訴主線程在5秒鍾后設置errTextView = ""
。 errTextView
在停止按鈕偵聽errTextView
正確顯示文本,但不能在啟動偵聽器中顯示文本。
你打電話
errTextView.setText("");
每次立即按下startButton。 因此,一旦單擊startButton,errTextView將始終為空
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.