[英]On Button click i want to toggle the text of TextView
我想通過單擊按鈕來切換 textview 文本。我已將標志設置為公共變量並在 onclick 函數中更改它,但由於某種原因標志的值仍被初始化為其默認值。 我是android studio的初學者謝謝。
public class MainActivity extends AppCompatActivity {
public Button bt1;
public TextView txt;
public boolean flag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1=(Button) findViewById(R.id.button);
txt=(TextView) findViewById(R.id.textView2);
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(flag){
flag=false;
txt.setText("Steve");
}
else {
txt.setText("Shetty");
flag=true;
}
}
});
}
}
我希望每次單擊按鈕時 Textview 的文本都會切換,但 textview 的文本僅更改一次。
標志始終為真,文本始終設置為“史蒂夫”
flag=true;
if(flag=true){
flag=false;
txt.setText("Steve");
}
else {
txt.setText("Shetty");
flag=true;
}
嘗試使用 true 初始化 flag 並刪除 onClickListener 中的 flag = true 部分
flag = true;
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(flag=true){
flag=false;
txt.setText("Steve");
}
else {
txt.setText("Shetty");
flag=true;
}
}
});
那是因為您在本地范圍內定義了變量“flag”。 這意味着當您修改標志變量並超出本地范圍(退出 onClick 方法)時,標志變量不再存在。 因此,您所做的更改不會在下次轉到 onClick 方法時反映出來。 (您還在開始時設置變量的值,因此 if 語句當然總是評估為 True)要解決此問題,請在可訪問的 onClick() 方法之外定義標志變量。
boolean flag;
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(flag){
flag=false;
txt.setText("Steve");
}
else {
txt.setText("Shetty");
flag=true;
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.