Java 测试时崩溃
所以,我刚刚开始在活动之间浏览和移动。我以为我得到了我想要的。我修复了所有错误,但现在当我测试应用程序时,它崩溃了。我不熟悉android和eclipse。所以我不确定到底发生了什么。下面是我的MainActivity.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.
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我很高兴能帮上忙!请接受正确的答案,其他有类似问题的人会发现答案更简单