在android中单击按钮时如何在单词之间切换
我是android编程新手。我试图在点击按钮时在单词之间切换,但当我尝试这样做时,如果用户点击按钮,它只切换一个单词,而不会持续切换。任何建议都会有帮助 主激活代码:在android中单击按钮时如何在单词之间切换,android,Android,我是android编程新手。我试图在点击按钮时在单词之间切换,但当我尝试这样做时,如果用户点击按钮,它只切换一个单词,而不会持续切换。任何建议都会有帮助 主激活代码: package com.example.helloworld; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import
package com.example.helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import static com.example.helloworld.R.id.text123;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
public void ONCLICK(View view) {
TextView text2 = (TextView) findViewById(text123);
text2.setText("Hello");
if (text2.getText().equals("Hello")) {
text2.setText("Hello!!!");
} else {
text2.setText("GoodBye!!");
}
}
这里有一个逻辑问题
text2.setText("Hello");
if (text2.getText().equals("Hello")) {
您正在将文本值设置为“Hello”,每次按钮单击时,甚至没有进入条件。这意味着您的文本值始终相同,并且不会改变
} else {
text2.setText("GoodBye!!");
}
这就是为什么您没有到达else语句来更改文本值的原因
要解决这个问题,我们应该将更改文本值的语句移动到按钮单击之外。这样我们就可以允许我们的逻辑改变文本值
为此,我们可以使用布尔数据类型,它只返回true或false。让我来告诉你我们是如何使用它的
在您的活动中,我们将一个全局变量布尔值声明为false,它将正确跟踪文本中的值,并且仅当文本更改时才会更改
private Boolean toggleMyText = false
现在让我们参考一下TextView
,只为它设置一次值,然后我们的逻辑就负责更改它的值
声明一个全局文本变量,就在布尔变量下面,如前所述:
private TextView text2;
在onCreate()中:
还要从导入中删除文本id的导入静态语句
import static com.example.helloworld.R.id.text123;
现在我们将click listener设置为按钮
您已经将click listener添加到布局本身的按钮中,其值为“onClick”。
因此,让我们在onCreate()之外的活动类中调用它
现在,让我们添加if-else逻辑语句
if (toggleMyText == true) {
text2.setText("Hello!!!");
toggleMyText = false;
} else {
text2.setText("GoodBye!!");
toggleMyText = true;
}
在上述声明中,
如果toggleMyText为true,我们将更改文本的值。我们还将布尔值更改为false
现在,下次单击时布尔值会更改,因此文本中的值也会更改。根据您的代码,每次在条件之前将文本设置为“Hello”。因此,条件
text2.getText().equals(“Hello”)
总是true
,每次都会得到“Hello!!!”。文本在第一次单击后会变成“Hello!!!”吗?单击之前的文本是什么?我们是否在onCreate函数中添加text2.setOnClickListener(new View.OnClickListener())是的!在setText之后添加此项,因为您需要在将click listener设置为它之前找到它的id。
public void onClick(View view) {
// Add if-else logic here
}
if (toggleMyText == true) {
text2.setText("Hello!!!");
toggleMyText = false;
} else {
text2.setText("GoodBye!!");
toggleMyText = true;
}