簡體   English   中英

TextView在特定的偵聽器中不顯示文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM