2017-03-20 8 views
3

私は問題が何のために迷っています。私はほとんどすべての関連する質問を読みましたが、私の問題がどんなものかというと困惑しています。 finish()メソッドで終了しますが、私のMainActivityクラスでは何も行われません。私は自分のマニフェストがnoHistorysingletonというアクティビティを呼び出さないことを確認しました。私はいくつかのトーストとテキストセットを置いたが、どれも呼ばれていない。onActivityResult()はAndroidアプリケーションで起動していません

MainActivityの場合:

Intent placeShips = new Intent(this, SetShips.class); //MainActivity.this works too 
startActivityForResult(placeShips, RESULT_OK); 

ここに私のコードの実装です。呼ばれる活動に

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == RESULT_OK && resultCode == RESULT_OK) { 
     Toast.makeText(MainActivity.this, "worked", Toast.LENGTH_SHORT).show(); 
     Toast.makeText(this, "worked", Toast.LENGTH_SHORT).show(); 
    } 
    newGame.setText("PLS "); //these aren't being called either 
    toast("PLS"); 
} 

: (ボタンが正常に動作しますのでご注意ください)

setShips.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      setResult(RESULT_OK); 
      finish(); //return to main activity, giving intent with stored player information 
     } 
    }); 

さらにノート。トーストはsetShipsボタンリスナーに正しく表示されますが、説明したように、トーストショーでさえもonActivityResultメソッドには何も返されません。私は何か他のものを逃している?

+0

あなたは 'super.onActivityResult(requestCode、resultCodeが、データ)を呼び出す必要はありません;'。あなたの 'SetShips'クラスに' onActivityResult'メソッドがありますか? – BlackHatSamurai

+0

リクエストコード 'RESULT_OK'の別名を使用してください。それは複製されています。 –

+0

愚かな質問かもしれませんが、 'startActivityForResult'を使用していますか? – CzarMatt

答えて

2

ようになりsould。あなたは実行する必要があります。

static final int YOUR_CODE = 1; 
Intent placeShips = new Intent(this, SetShips.class); //MainActivity.this works too 
startActivityForResult(placeShips, YOUR_CODE); 

次に、あなたが行うことができます:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == YOUR_CODE && resultCode == RESULT_OK) { 
     Toast.makeText(MainActivity.this, "worked", Toast.LENGTH_SHORT).show(); 
     Toast.makeText(this, "worked", Toast.LENGTH_SHORT).show(); 
    } 
    newGame.setText("PLS "); //these aren't being called either 
    toast("PLS"); 
} 
+0

しかし、 'RESULT_OK'を' requestCode'として送信する際の問題は何ですか? –

+0

これは、ありがとうトンだった。何らかの理由で私は 'RESULT_OK'がグローバルなものだと考えました。 –

+0

@RaviRupareliya独自のリクエストコードを設定する必要があります。 RESULT_OKAYは、SDKによって使用される変数です。 – BlackHatSamurai

0

あなたの結果コードは、あなたが適切にあなたの要求コードを設定していないように見えます。この

if (requestCode == RESULT_OK && resultCode == Activity.RESULT_OK) { 
    Toast.makeText(MainActivity.this, "worked", Toast.LENGTH_SHORT).show(); 
    Toast.makeText(this, "worked", Toast.LENGTH_SHORT).show(); 
} 
関連する問題