簡體   English   中英

在按鈕上單擊我想切換 TextView 的文本

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

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