2017-11-11 33 views
0

我想爲一個按鈕做不同的事情。
但我每次點擊按鈕後都會更改說明。
首先我創建了兩個按鈕,點擊按鈕後我希望它改變它的文本。對於每個文本我想創建不同的指令。
我爲此創建了if/else。但我不確定我爲什麼不工作。
我只在第一條語句中做了說明。一個按鈕的不同指令

這是我的代碼。

package com.example.iqbal.destini; 

public class MAINPAGE extends AppCompatActivity { 

Button mAnswer_1_Button; 
Button mAnswer_2_Button; 
TextView mTextbody; 
int counter1 = 0; 
int counter2 = 0; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_mainpage); 

    mAnswer_1_Button = (Button) findViewById(R.id.answer_1); 
    mAnswer_2_Button = (Button) findViewById(R.id.answer_2); 
    mTextbody = (TextView) findViewById(R.id.text_body); 

    if(mTextbody.getText().toString().equals(getResources().getString(R.string.T1_Story)) && mAnswer_2_Button.getText().toString().equals(getResources().getString(R.string.T1_Ans2))&&mAnswer_1_Button.getText().toString().equals(getResources().getString(R.string.T1_Ans1))){ 
     mAnswer_1_Button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       mTextbody.setText(R.string.T3_Story); 
       mAnswer_1_Button.setText(R.string.T3_Ans1); 
       mAnswer_2_Button.setText(R.string.T3_Ans2); 
      } 
     }); 

     mAnswer_2_Button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mTextbody.setText(R.string.T2_Story); 
       mAnswer_1_Button.setText(R.string.T2_Ans1); 
       mAnswer_2_Button.setText(R.string.T2_Ans2); 

      } 
     }); 
    } 
    else if(mTextbody.getText().toString().equals(getResources().getString(R.string.T2_Story))&& mAnswer_2_Button.getText().toString().equals(getResources().getString(R.string.T2_Ans2))&&mAnswer_1_Button.getText().toString().equals(getResources().getString(R.string.T2_Ans1))){ 

     mAnswer_1_Button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       mTextbody.setText(R.string.T3_Story); 
       mAnswer_1_Button.setText(R.string.T3_Ans1); 
       mAnswer_2_Button.setText(R.string.T3_Ans2); 
      } 
     }); 
     mAnswer_2_Button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       mTextbody.setText(R.string.T4_End); 
       mAnswer_1_Button.setVisibility(View.GONE); 
       mAnswer_2_Button.setVisibility(View.GONE); 
      } 
     }); 
    } 
    else if(mTextbody.getText().toString().equals(getResources().getString(R.string.T3_Story))&& mAnswer_2_Button.getText().toString().equals(getResources().getString(R.string.T3_Ans2))&&mAnswer_1_Button.getText().toString().equals(getResources().getString(R.string.T3_Ans1))){ 
     mAnswer_1_Button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       mTextbody.setText(R.string.T6_End); 
       mAnswer_1_Button.setVisibility(View.GONE); 
       mAnswer_2_Button.setVisibility(View.GONE); 

      } 
     }); 
     **mAnswer_2_Button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mTextbody.setText(R.string.T5_End); 
       mAnswer_1_Button.setVisibility(View.GONE); 
       mAnswer_2_Button.setVisibility(View.GONE); 
      } 
     }); 
    } 
} 
}** 

回答

0

mTextbody.getText()始終是空在那裏的當前位置(除非你有TextView的默認字符串)

移動的,如果條件進入的onClick方法體。

有條件地執行操作。不要有條件地添加監聽器。您只需要一個OnClickListener按鈕

相關問題