2017-01-08 68 views
0

我正在製作測驗應用程序。如果用戶輸入了正確答案,他們的得分就會達到+1。 但是,我想這樣做,如果一個提示按鈕被點擊,然後他們沒有得到他們的分數更新。如果按鈕已被點擊,Android不會更新分數

我的代碼現在

public class FragmentTwo extends Fragment { 

    private EditText userAnswer; 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View v = inflater.inflate(R.layout.fragment_fragment_two, null); 
     userAnswer = (EditText)v.findViewById(R.id.editText); 
     final TextView tv = (TextView)v.findViewById(R.id.showCorrect); 
     final TextView hintv = (TextView)v.findViewById(R.id.textHint); 
     //final int a; 

     final Button submit = (Button)v.findViewById(R.id.submitBtn1); 
     submit.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       String theAnswer = (userAnswer.getText().toString()); 
       if (theAnswer.equalsIgnoreCase("Greece")) { 
        if (hintv.isEnabled()) {       //Doesn't work 
         ((Play) getActivity()).updateScore(1); 
        } 
        tv.setText("Correct!"); 
       } else { 
        tv.setText("Wrong"); 
       } 
       submit.setEnabled(false); 

      } 
     }); 

     final Button skip = (Button)v.findViewById(R.id.skipBtn); 
     skip.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       submit.setEnabled(false); 
      } 
     }); 

     final Button hint = (Button)v.findViewById(R.id.hintBtn); 
     hint.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       hintv.setText("The capital is Athens \n The country is in Europe \n It starts with G... "); 
       hint.setEnabled(false); 
      } 
     }); 

if語句我應該寫什麼,而不是看爲以下?

回答

1

使用boolean標誌,例如:

private boolean hintUsed; 

當提示按鈕被點擊,這個設置爲true:

hint.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     hintv.setText("The capital is Athens \n The country is in Europe \n It starts with G... "); 
     hint.setEnabled(false); 
     hintUsed = true; 
    } 
}); 

,然後檢查答案時,只授予點如果hintUsed仍然是假的:

if (!hintUsed) { 
    ((Play) getActivity()).updateScore(1); 
} 
+0

謝謝你的幫助! –

1

只需單擊提示按鈕後添加一個布爾變量,將其更改爲true。

​​

當然不要忘記再次添加

isHintButtonClicked = false; 

因此,這將是錯誤的下一個問題。

0
if (hintv.getVisibility() == View.INVISIBLE || hintv.getVisibility() == View.GONE) 

這表明只有當您的TextView不可見時它纔會成立。