私はゲームの各ラウンドで何が起こったかを示すために、ゲームログを作成しようとしています。ログは別のアクティビティにありますが、私はプレーヤーが何をしていても常に更新したいと思っています。プレーヤーは特定のことを行うボタンを押すだけです。投稿するにはあまりにも多くのコードですが、私は新しいバンドルと意図を作りました。追加メインからの別のアクティビティのTextViewを追加
MainActivityにあります。
Bundle bundle = new Bundle();
Intent GameLogSwitch = new Intent(getApplicationContext(),GameLog.class);
これを他のアクティビティに送信しようとしていますが、変数を入れることができるかどうかはわかりません。それ以外の場合には、そのような(「キー」、「それは作品」)のコースgamelogボタンがGamelog.classで今
を押したとき、私はこれを持って、その後GameLogSwitch.putExtra("Break","---BREAK---"+"\n"+Player1Name+": "+GreenResult.getText()+"("+GrTop1+","+GrTop2+","+GrTop3+")"+"\n"+Player2Name+": "+RedResult.getText()+"("+RdTop1+","+RdTop2+","+RdTop3+")");
と簡単な言葉で動作します私はこれを持っています。
package com.example.adam.snookerproject;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class GameLog extends AppCompatActivity {
private TextView GameLogText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_log);
GameLogText = (TextView) findViewById(R.id.GameLogText);
Intent GameLogSwitch = getIntent();
String myString = GameLogSwitch.getStringExtra("Break");
GameLogText.append(myString);
}
}
私にはいくつか質問があります。まず、なぜ私の弦で一度しか動作しないのですか?私がアクティビティを開始したとき、つまり同じボタンをもう一度押しても同じことをもう一度書き込まないのはなぜですか?
第2に、私の "Break"キーにはうまくいかないようですが、これは送信するテキストに変数があるという事実と関係がありますか?単純なテキストの場合にのみ有効ですGameLogSwitch.putExtra("key","It works");
これを行うには簡単な方法が必要です。ありがとうございました。
更新1:Drvの回答はうまくいくようですが、私がしようとするとGameLogText.append(AppConstants.log)
ボタンを何回押しても、テキストビュー内のすべてが置き換えられます。私は再び活動を開始するたびにアクティビティがリセットされていると思います。これはどうですか?
tl; dr。EventBusライブラリを調べれば、どこからでもどこにでもデータを非同期で送ることができるので、あなたの人生はずっと楽になります。 – Vucko
http://square.github.io/otto/ – anivaler
hmm病気を見てください。 – deathskiller