从另一个活动中的intent中检索int时,Android应用程序崩溃

时间:2014-04-18 01:29:07

标签: android android-intent

我正在尝试在一个活动(SetupMenu)中创建一个按钮,当按下该按钮时,将一个int放入intent中并将其转移到下一个活动(IntroActivity),其中textView将检索int并显示它。 / p>

问题是,当应用程序运行并且我进入活动并按下按钮时,应用程序崩溃,我的模拟器告诉我"不幸的是[我的应用程序]已停止工作。"

我觉得我已经测试了每个可能的角度来实现这个目标。我应该注意到按钮工作正常,textview工作正常,其他一切工作正常 - 当我尝试检索intent并在textView中显示时,我只会遇到问题。我尝试通过String而不是Int并且也有问题(我的字符串不会出现)。有什么指针吗?

SetupMenu活动(这里我把int放入我的意图中):

public class SetupMenu extends Activity {

    public final static String extra_progress_key = "com.example.angelsanddemons.track_players";
    public int track_players = 0;

    public void to_intro(View view) {
        Intent intent = new Intent(this, IntroActivity.class);
        intent.putExtra(extra_progress_key, track_players);
    startActivity(intent);
}

IntroActivity活动(这里我尝试从intent中检索int):

public class IntroActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = getIntent();
        int temp = intent.getIntExtra(SetupMenu.extra_progress_key, 0 );
        TextView textView = new TextView(this);
        textView.setText(temp);
        setContentView(textView);
    }
}

2 个答案:

答案 0 :(得分:1)

一个问题是您无法将TextView的文本设置为int;您需要先将其转换为字符串。在你夸大观点之前操纵观点也不是一个好主意,所以也许你的onCreate()应该是:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = getIntent();
    int temp = intent.getIntExtra(SetupMenu.extra_progress_key, 0 );
    TextView textView = new TextView(this);
    setContentView(textView);
    textView.setText(String.valueof(temp));
}

答案 1 :(得分:0)

在启动IntroActivity时,我看不到任何确保创建SetupMenu活动的内容。要确保,不要传递变量,而是传递字符串本身并检查它是否有效:    int temp = intent.getIntExtra("com.example.angelsanddemons.track_players", 0 );