Java 测试时崩溃

Java 测试时崩溃,java,android,Java,Android,所以,我刚刚开始在活动之间浏览和移动。我以为我得到了我想要的。我修复了所有错误,但现在当我测试应用程序时,它崩溃了。我不熟悉android和eclipse。所以我不确定到底发生了什么。下面是我的MainActivity.java: import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.

所以,我刚刚开始在活动之间浏览和移动。我以为我得到了我想要的。我修复了所有错误,但现在当我测试应用程序时,它崩溃了。我不熟悉android和eclipse。所以我不确定到底发生了什么。下面是我的MainActivity.java:

       import android.os.Bundle;
       import android.app.Activity;
       import android.content.Intent;
       import android.util.Log;
       import android.view.Menu;
       import android.view.MenuInflater;
       import android.view.View;
       import android.widget.Button;
       import android.widget.EditText;
       import android.widget.TextView;

    public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent = getIntent();
    String info = intent.getStringExtra("info_key");
    TextView text = (TextView) findViewById(R.id.nametext);
    text.setText(info);
}


//opens a new activity.
public void openAddItem (View v){
    Intent intent = new Intent (this, Additem.class);
    startActivity(intent);
      }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

    }
这是我的第二项活动;Additem.java:

    package com.grocerylist;

     import android.os.Bundle;
     import android.app.Activity;
     import android.content.Intent;
     import android.view.Menu;
     import android.view.View;
     import android.widget.EditText;
     import android.widget.TextView;

    public class Additem extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_additem);

}


public void additem (View v){
    EditText text = (EditText)findViewById(R.id.itemname);
    String info = text.getText().toString();
    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra("info_key", info);
    startActivity(intent);
     }


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_additem, menu);
    return true;
}

    }

谢谢,我敢肯定问题在于我把身份证放在哪里。

我看到的第一个问题是这里

Intent intent = getIntent();
    String info = intent.getStringExtra("info_key");
    TextView text = (TextView) findViewById(R.id.nametext);
    text.setText(info);
如果这是您的第一次
活动
,则没有“获取”的
意图。当您以
意图启动
活动
并发送
附加信息时,将使用此选项。因此,
info
自然是
null
。当你从第二个
活动创建它时,会有一些东西出现,但当你第一次运行应用程序时就不会了。此外,您可能希望在第一次
活动中使用

其次,我看不出在第一个
活动中调用
openAddItem()
。它可能来自
按钮
,但我没有看到任何
按钮

看起来您对Android框架的基本原理缺少一些关键的理解。若你们还并没有经历过的话,我建议你们从开始。祝你好运

还有这个

Intent intent = new Intent (this, Additem.class);
应该是这个吗

Intent intent = new Intent (MainActivity.this, Additem.class);

我也看到的第一个问题已经被codeMagic提到了

第二件事:如果您只调用在
onCreate()
中启动另一个
活动的方法,那么堆栈中的
活动将伪无限多,您的应用程序将崩溃


考虑观看,它可能会帮助您开始

发布日志。事实上,一旦你找到了你的logcat,很有可能,你可以自己修复它;)在哪里调用openAdditem()方法?为什么要向其传递视图?启动应用程序时启动哪些活动?请发布一些LogCat输出。如果您还没有看到LogCat,请转到Window-Show View-LogCatYes,它只显示问题所在。第28行在MainActivity.java中,但我没有看到text.setText(info)的问题。你知道吗@323GOT问题是
文本
信息
为空。找出哪一个。您的信息字符串为空,因为不打算get@KyleK我很高兴能帮上忙!请接受正确的答案,其他有类似问题的人会发现答案更简单