这是 MainActivity 代码:
package com.vanitfyf.karko;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView1 = (TextView) findViewById(R.id.textView1);
textView1.setTextColor(Color.BLUE);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(MainActivity.this, "entering debug mode", Toast.LENGTH_LONG).show();
startActivity(new Intent(MainActivity.this, SecondActivity.class ));
}
});
Button button2 = (Button)findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(MainActivity.this, "entering normal mode", Toast.LENGTH_LONG).show();
startActivity(new Intent(MainActivity.this, ThirdActivity.class));
}
});
}
/* @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}*/
}
这是 SecondActivity 代码:
package com.vanitfyf.karko;
import android.app.*;
import android.content.*;
import android.os.*;
import android.widget.*;
public class SecondActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second); }
protected void show(Context context) {
Toast.makeText(context, "welcome", Toast.LENGTH_LONG).show();
}
}
这是 ThirdActivity 代码:
package com.vanitfyf.karko;
import android.app.*;
import android.os.*;
import android.widget.*;
public class ThirdActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activitythird);
TextView textview2 = (TextView) findViewById(R.id.textview2);
textview2.setText("Welcome to normal mode");
}
}
一旦我尝试按下打开 ThirdActivity 的按钮,应用程序就会崩溃。第三个 Activity 不显示。在一次飞机旅行中,我一直在沮丧地拔头发,试图找出问题所在,但我仍然没有得到它。顺便说一句,所有 Activity 都引用了正确的布局 .xmls。
任何指针?我是这方面的新手(显然),所以我很感激任何帮助!
最佳答案
根据您提供的代码,您的应用程序在您描述的情况下崩溃有几个直观的原因。
确保在 Manifest 中声明了第三个 Activity,否则在启动 Activity 时会收到空指针异常(这可能导致应用程序崩溃)。这是应用程序中所有 Activity 的要求。在此处查看更多信息:http://developer.android.com/guide/topics/manifest/manifest-intro.html .
此外,验证您的第三个 Activity “activitythird”的布局是一个有效的资源名称,并且包含您在第三个 Activity “textview2”中引用的 TextView。如果使用 Eclipse ADT 或 Android Studio 等 IDE,您应该会收到找不到资源的指示;如果不是自动的,至少在编译时。这同样适用于启动第三个 Activity “button2”的启动按钮。
关于一旦我尝试启动 Activity,Android 应用程序就会崩溃并显示 "Unfortunately, <appname> has stopped",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21586880/