【问题标题】:Change button text before function call in Android Studio在 Android Studio 中的函数调用之前更改按钮文本
【发布时间】:2020-05-15 17:20:26
【问题描述】:

我正在设计一个简单的应用程序,其中 myfunction() 在按下开始按钮时被调用。 myfunction() 需要几秒钟才能完成。现在,当我按下开始按钮时,myfunction() 会运行几秒钟,完成后,按钮的文本会变为“停止”。我希望在按下“开始”按钮并调用函数之前,按钮的文本立即更改为“停止”。

这是我第一次使用 Android Studio 和 Java。任何帮助表示赞赏。

我已经附加了按下按钮时调用的函数。

public void buttonClick(View v) {
    Button tv = (Button)findViewById(R.id.button1);
    if(tv.getText() == "Start") {
        tv.setText("Stop");
        myfunction();
    }
    else {
        tv.setText("Start");
    }
}

【问题讨论】:

  • 如果你在myfunction()的第一行加上文字修改代码,就可以了!
  • 你应该在一个线程中运行你的myfunction(),这样你就不会阻塞用户界面。检查这个stackoverflow.com/a/31549559/178280。此外,我了解您正在学习编码,因此请尽量不要使用按钮文本来比较状态。您应该定义一个变量并根据该变量决定要显示的文本。

标签: java android android-studio


【解决方案1】:

不要像这样使用tv.getText()=="Start" 使用tv.getText().equals("Start")...

public void buttonClick(View v) {
    Button tv = (Button)findViewById(R.id.button1);
    if(tv.getText().equals("Start")) {
        tv.setText("Stop");
        myfunction();
    }
    else {
        tv.setText("Start");
    }
}

【讨论】:

    【解决方案2】:

    要使用等号,请执行以下操作:

     public void buttonClick(View v) {
        Button tv = (Button)findViewById(R.id.button1);
        if(tv.getText().toString() == "Start") {
            tv.setText("Stop");
            myfunction();
        }
        else {
            tv.setText("Start");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-05
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多