2017-11-11 85 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按钮

相关问题