我正在尝试创建一个游戏日志,以显示游戏的每一轮发生的事情。日志在另一个活动中,但我希望随着玩家的操作不断更新。玩家只需按下执行某些操作的按钮即可。发布的代码太多,但是我已经制作了一个新的包和一个意图。通过主追加另一个活动的TextView
In MainActivity。
Bundle bundle = new Bundle();
Intent GameLogSwitch = new Intent(getApplicationContext(),GameLog.class);
我想把这个发送到其他活动,但我不知道你是否可以把变量放在里面。否则它与简单的词语,如(“钥匙”,“它的工作原理”)
GameLogSwitch.putExtra("Break","---BREAK---"+"\n"+Player1Name+": "+GreenResult.getText()+"("+GrTop1+","+GrTop2+","+GrTop3+")"+"\n"+Player2Name+": "+RedResult.getText()+"("+RdTop1+","+RdTop2+","+RdTop3+")");
,然后我当然这个时候gamelog按钮Gamelog.class按下
现在我有这个。
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);
}
}
我有几个问题。首先,当我开始活动时,为什么只在我的字符串中追加一次,即当我再次返回并再次按下相同的按钮时,它不会在下面再次写入相同的内容?
其次,它似乎不适用于我的“休息”键,这是否与我发送的文本中存在变量这一事实有关?它只适用于简单文本,如GameLogSwitch.putExtra("key","It works");
必须有一个更简单的方法来做到这一点!谢谢。
更新1:从Drv的答案似乎工作,但是当我尝试做GameLogText.append(AppConstants.log)
它只是替换textview中的所有内容,无论我按了多少次按钮。我认为每次重新开始时,活动都会重置。任何方式在这个?
tl; dr。您最好查看EventBus库,它会让您的生活变得更加轻松,因为它可以让您将数据从任何地方异步发送到任何地方。 – Vucko
http://square.github.io/otto/ – anivaler
嗯不好意思看看那个。 – deathskiller