2016-08-09 16 views
2

を動作しなかった空の場合:チェック2 <code>activity</code>私が持っている文字列が私のアンドロイドアプリケーションで

  • Player_List

  • Game_Launch

最初activityで、私が尋ねますplayerの名前、すべての名前が空の場合は名前なしで再生しますが、空でない場合はplayersで再生します。

4人のプレーヤーのうち3人を追加すると、activityにはplayerと表示されます。しかし、彼はemptyのプレーヤーを追加します。

check systemを作成するにはどうすればよいですか?

Player_List:

Intent i = new Intent(getApplicationContext(),Game_Launch.class); 

      i.putExtra("player1", player1.getText().toString()); 
      i.putExtra("player2", player2.getText().toString()); 
      i.putExtra("player3", player3.getText().toString()); 
      i.putExtra("player4", player4.getText().toString()); 
      startActivity(i); 

がGame_Launch:

Intent in = getIntent(); 
     String player1= in.getExtras().getString("player1"); 
     String player2= in.getExtras().getString("player2"); 
     String player3= in.getExtras().getString("player3"); 
     String player4= in.getExtras().getString("player4"); 
     //Log.d(); 

     if (!player1.equals("")) { 
      playerge= new String[] {"player2", "player3", "player4"}; 
     } 
     else if (!player2.equals("")){ 
      playerge= new String[] {"player1", "player3", "player4"}; 
     } 
     else if (!player3.equals("")){ 
      playerge= new String[] {"player1", "player2", "player4"}; 
     } 
     else if (!player4.equals("")){ 
      playerge= new String[] {"player1", "player2", "player3"}; 
     } 
     else if (!player1.equals("") && (!player2.equals(""))){ 
      playerge= new String[] {"player3", "player4"}; 
     } 
     else if (!player3.equals("") && (!player4.equals(""))){ 
      playerge= new String[] {"player1", "player2"}; 
     } 

私は、これはそれが動作しません確認してください。私の問題を解決するのに手伝ってくれますか?ありがとうございました。

EDIT:

With answerd i have tried : 


Intent in = getIntent(); 
    String player1 = in.getStringExtra("player1"); 
    String player2 = in.getStringExtra("player2"); 
    String player3 = in.getStringExtra("player3"); 
    String player4 = in.getStringExtra("player4"); 

    //Log.d(); 

    if (!player1.equals("")) { 
     playerge= new String[] {"player2", "player3", "player4"}; 
     Toast.makeText(getApplicationContext(), "p1", Toast.LENGTH_SHORT).show(); 
    } 
    else if (!player2.equals("")) { 
     playerge= new String[] {"player1", "player3", "player4"}; 
     Toast.makeText(getApplicationContext(), "p2", Toast.LENGTH_SHORT).show(); 
    } 
    else if (!player3.equals("")) { 
     playerge= new String[] {"player1", "player2", "player4"}; 
     Toast.makeText(getApplicationContext(), "p3", Toast.LENGTH_SHORT).show(); 
    } 
    else if (!player4.equals("")) { 
     playerge= new String[] {"player1", "player3", "player2"}; 
     Toast.makeText(getApplicationContext(), "p4", Toast.LENGTH_SHORT).show(); 
    } 
     else{ 
      Toast.makeText(getApplicationContext(), "tout ok", Toast.LENGTH_SHORT).show(); 
     } 

マイストリング1が完了し、2、3が完了し、4が完了していないが、私はP1トーストを有します。

文字列が作成されたどのように

:あなたは間違ってデータを取得している

public void checkuser(){ 
    EditText player1 = (EditText)findViewById(R.id.editText2); 
    EditText player2 = (EditText)findViewById(R.id.editText); 
    EditText player3 = (EditText)findViewById(R.id.editText4); 
    EditText player4 = (EditText)findViewById(R.id.editText3); 
    String f = player1.getText().toString(); 
    String f1 = player2.getText().toString(); 
    String f2 = player3.getText().toString(); 
    String f3 = player4.getText().toString(); 

    if ((f.trim().equals("")) && (f1.trim().equals("")) && (f2.trim().equals("") && (f3.trim().equals("")))){ 
     Intent i = new Intent(getApplicationContext(),Game_Launch_withoutplayer.class); 
     startActivity(i); 
    } 
    else{ 
     Intent in = new Intent(getApplicationContext(),Game_Launch.class); 

     in.putExtra("player1", player1.getText().toString()); 
     in.putExtra("player2", player2.getText().toString()); 
     in.putExtra("player3", player3.getText().toString()); 
     in.putExtra("player4", player4.getText().toString()); 
     startActivity(in); 
    } 
} 
+0

をあなたがここに実現したいロジックを説明することができます。 player1が空の場合のように、 – Shaishav

+0

私は4つの 'edittext'を持っています。私の 'button'をクリックすると、私の' EditText'が 'empty'だったかどうかチェックします。もしそれが空の場合、私たちは名前なしで遊ぶでしょう。それ以外の場合は、「プレーヤー」と一緒にプレイします。しかし、プレーヤーが 'player1'、' player2'、 'player3''を' player4'なしで完成させたら、私は自分の弦からplayer4を取り除きたいと思います。 – johnsnow85

+0

一度に一人のプレイヤーの名前だけが空になることはありますか? (あなたが 'if-else'を使っているので、私が尋ねている理由) – Shaishav

答えて

3

を。あなたのようなデータの書き込み時:

Intent i = new Intent(getApplicationContext(), Game_Launch.class); 
i.putExtra("player1", player1.getText().toString()); 

をあなたのようにそれを得る:

Intent in = getIntent(); 
String player1= in.getStringExtra("player1"); 

今それがあるとして、あなたの比較を行うことができます。

+0

ありがとう、ありがとう、 'android.content.Intent'のgetStringExtra(java.lang.String)に関する別の問題があります '(java.lang.String、java.lang.String)'に適用できません ' 。私はそれを解決しようとします。ありがとうございました。あなたの答えは非常におかしくありません。 – johnsnow85

+0

@ johnsnow85 yeah thats my bad ...私は間違っていました。ちょうどin.getStringExtra( "player1"、 "") 'から2番目の引数(' '' ')を削除してください。 – Shaishav

+0

@ johnsnow85 'in.getStringExtra(" player1 ")'が文字列が見つからない場合はnullを返します – Shaishav

0

これが役に立ちます。

if(player1.equalsIgnoreCase("") && (!TextUtil.isempty(player1))) 

し、以下のようにデータを取得する:

Intent in = getIntent(); 
String player1= in.getStringExtra("player1"); 
関連する問題