2016-10-24 10 views
0

次のページ(XML)に進む前にチェックボックスをオンにします。それは別々に働いていますが、一緒には働いていません。私がチェックボックスをオフにして再生ボタンを押すと、トーストだけが表示されるはずです。 これは私が得たものです。チェックボックス承認

XMLチェックボックスには、itemClicked aas onClickメソッドがあります。 ボタンには、onClickメソッドとしてstartNewActivityがあります。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

public void itemClicked (View v) { 
    final Button play =(Button)findViewById(R.id.playButton); 
    CheckBox Approved = (CheckBox) findViewById(R.id.Approved); 
    Approved.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (((CheckBox) v).isChecked()) { 
       play.setEnabled(true); 

      } else { 
       Toast.makeText(MainActivity.this, "Please Approve!", Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 
} 

public void startNewActivity (View view){ 
    final EditText edit = (EditText) findViewById(R.id.editText); 
    String Name = (String) edit.getText().toString(); 

    Intent intent = new Intent (this, GameSetUp.class); 
    intent.putExtra("name", Name); 

    itemClicked(view); 
    startActivity(intent); 
} 

}

あなたは私が間違っているの何を伝えることができますしてください。

Gr。 Jeroen

答えて

1

再生ボタンを無効にしないでください。このようにしてみてください。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final Button play = (Button) findViewById(R.id.playButton); 
    CheckBox Approved = (CheckBox) findViewById(R.id.Approved); 
    play.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (Approved.isSelected()) { 
       startNewActivity(); 
      } else { 
       Toast.makeText(MainActivity.this, "Please Approve!", Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 
} 

public void itemClicked(View v) { 
    // This method can be removed 
} 
+0

こんにちは、あなたのコードは、そのトリックをしません。それはトーストを示していますが、次のページには行きません。 –

+0

EDIT:Dileep Patelの答えは必要なものを与えるはずです。 – ehehhh

0

OnCheckedChangeListener

は、再生ボタンを制御するために使用される、@ ehehhhの答えに追加します。あなたはあなたの startNewActivityメソッドのロジックと誤解しています。電話番号 itemClickedstartNewActivityから削除します。代わりに、また、

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final Button play = (Button) findViewById(R.id.playButton); 
    CheckBox Approved = (CheckBox) findViewById(R.id.Approved); 
    Approved.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() 
    { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
     { 
      play.setEnabled(isChecked); 
     } 
    }); 
} 

public void startNewActivity(View view) 
{ 
    final EditText edit = (EditText) findViewById(R.id.editText); 
    String Name = (String) edit.getText().toString(); 

    Intent intent = new Intent(this, GameSetUp.class); 
    intent.putExtra("name", Name); 

    startActivity(intent); 
} 

このようにそれを入れて、JAVAおよびXMLの両方、アンドロイドのための命名規則についての詳細を読む:)

+0

Thanx SlashG確かにやります。 –

+0

こんにちはSlashG、あなたのコードを試しました。しかし、チェックボックスがチェックされていないにもかかわらず、スタートボタンは動作し続けます! –

+0

このコードはデフォルトで 'Button'を無効にしません。これをXMLや 'onCreate()'メソッドで以下のように設定してください: 'play.setEnabled(Approved.isChecked())' – SlashG

0

をあなたは、このコードに試すことができ、これはあなたを助けることができると思います。..

Button play; 
CheckBox Approved; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    play = (Button) findViewById(R.id.playButton); 
    Approved = (CheckBox) findViewById(R.id.Approved); 
} 

public void startNewActivity(View view) { 
    final EditText edit = (EditText) findViewById(R.id.editText); 
    String Name = (String) edit.getText().toString(); 
    if (Approved.isChecked()) { 
     play.setEnabled(true); 
     Intent intent = new Intent(this, GameSetUp.class); 
     intent.putExtra("name", Name); 
     startActivity(intent); 
    } else { 
     Toast.makeText(MainActivity.this, "Please Approve!", Toast.LENGTH_LONG).show(); 
    } 
} 
+0

親愛なるDileep。 awnserは私が思っていたより簡単だった。 –

+0

@ Jeroen van der Schalie、これがあなたを助けてくれるなら、歓迎してください。 –