activity跳转问题(unfortunately activity has stopped)

wo_buhui 2012-07-16 11:16:15
程序功能:点下按钮跳转到另一个OtherActivity,并且显示信息。
代码如下:
MainActivity.java

package com.example.activity;

import android.os.Bundle;
import android.view.*;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.support.v4.app.NavUtils;

@SuppressLint("ParserError")
public class MainActivity extends Activity {

public Button myButton=null;
public TextView myTextView=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myButton=(Button)findViewById(R.id.myButton);
myButton.setText("jump to activytyOther");
myButton.setOnClickListener(new myButtonMonitor());

myTextView=(TextView)findViewById(R.id.myTextView);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

public class myButtonMonitor implements View.OnClickListener{

public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(MainActivity.this, OtherActivity.class);
intent.putExtra("msg", 123);
MainActivity.this.startActivity(intent);
MainActivity.this.myTextView.setText("button clicked!");//这里没有问题
}

}
}



OtherActivity.java

package com.example.activity;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class OtherActivity extends Activity{

public TextView myTextView=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.myTextView=(TextView)findViewById(R.id.a);//这里是我感觉不对的地方
this.myTextView.setText("This Is Other Activty!");

}


}



MainActivity的布局xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

</RelativeLayout>



OtherActivity的布局xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@+id/a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".OtherActivity" />

</RelativeLayout>


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activity2"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".OtherActivity"
android:label="@string/title_activity_other">

</activity>
</application>

</manifest>



1.button的监听类里边加入了一个测试,这个测试成功,说明按钮的动作实现没问题
2.当OtherActivity里边不加入任何控件的时候,可以实现跳转,可见intent的实现应该没问题
3.当OtherActivity里边加入了控件的时候,android模拟器提示Unfortunately Activity has stopped
4.个人感觉是R.id.Something出了问题

我是新手,困扰很久了这个问题,请教各位高手,谢谢了
...全文
857 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
tmjkqiao 2012-07-18
  • 打赏
  • 举报
回复
我验证了,你在
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
//缺少一行
tv_b = (TextView)findViewById(R.id.b);

tv_b.setText("B");
}

而且,其它的地方也有点问题,下面的经过测试,正确
a.java

public class a extends Activity{
private Button jump=null;
private TextView tv_a=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a);
jump=(Button)findViewById(R.id.jump);
jump.setOnClickListener((OnClickListener) new Monitor());
tv_a=(TextView)findViewById(R.id.a);
tv_a.setText("A");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.layout.a, menu);
return true;
}

private class Monitor implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setClass(a.this, b.class);
a.this.startActivity(intent);
}

}
}


b.java

public class b extends Activity {

private TextView tv_b=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.b);
tv_b = (TextView)findViewById(R.id.b);
tv_b.setText("B");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.layout.b, menu);
return true;
}
}


a.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@+id/a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="10dp"
android:text="@string/hello_a"
tools:context=".a" />
<Button
android:id="@+id/jump"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

</RelativeLayout>


b.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@+id/b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="10dp"
android:text="@string/hello_b"
tools:context=".b" />

</RelativeLayout>
wo_buhui 2012-07-18
  • 打赏
  • 举报
回复
补充 出错信息:
07-18 01:10:04.818: E/AndroidRuntime(665): FATAL EXCEPTION: main
07-18 01:10:04.818: E/AndroidRuntime(665): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.p/com.example.p.b}: java.lang.NullPointerException
07-18 01:10:04.818: E/AndroidRuntime(665): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
07-18 01:10:04.818: E/AndroidRuntime(665): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
07-18 01:10:04.818: E/AndroidRuntime(665): at android.app.ActivityThread.access$600(ActivityThread.java:130)
07-18 01:10:04.818: E/AndroidRuntime(665): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
07-18 01:10:04.818: E/AndroidRuntime(665): at android.os.Handler.dispatchMessage(Handler.java:99)
07-18 01:10:04.818: E/AndroidRuntime(665): at android.os.Looper.loop(Looper.java:137)
07-18 01:10:04.818: E/AndroidRuntime(665): at android.app.ActivityThread.main(ActivityThread.java:4745)
07-18 01:10:04.818: E/AndroidRuntime(665): at java.lang.reflect.Method.invokeNative(Native Method)
07-18 01:10:04.818: E/AndroidRuntime(665): at java.lang.reflect.Method.invoke(Method.java:511)
07-18 01:10:04.818: E/AndroidRuntime(665): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-18 01:10:04.818: E/AndroidRuntime(665): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-18 01:10:04.818: E/AndroidRuntime(665): at dalvik.system.NativeStart.main(Native Method)
07-18 01:10:04.818: E/AndroidRuntime(665): Caused by: java.lang.NullPointerException
07-18 01:10:04.818: E/AndroidRuntime(665): at com.example.p.b.onCreate(b.java:17)
07-18 01:10:04.818: E/AndroidRuntime(665): at android.app.Activity.performCreate(Activity.java:5008)
07-18 01:10:04.818: E/AndroidRuntime(665): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
07-18 01:10:04.818: E/AndroidRuntime(665): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
07-18 01:10:04.818: E/AndroidRuntime(665): ... 11 more
wo_buhui 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

哪个Activity出错,要发这个Activity完整代码上来,以及完整的Log出错提示上来。
[/Quote]
以前的那个程序已经找不到了,我重新写了一个,问题依旧,代码如下:
程序描述:程序名称为P,有两个activity:a和b


a的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@+id/a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".a" />
<Button
android:id="@+id/jump"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

</RelativeLayout>


b的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@+id/b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".b" />

</RelativeLayout>



src文件为:

//a.java
package com.example.p;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.support.v4.app.NavUtils;

public class a extends Activity {

private Button jump=null;
private TextView tv_a=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
jump=(Button)findViewById(R.id.jump);
jump.setOnClickListener(new Monitor());
tv_a=(TextView)findViewById(R.id.a);
tv_a.setText("A");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_a, menu);
return true;
}

private class Monitor implements View.OnClickListener{

public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(a.this, b.class);
a.this.startActivity(intent);

}

}


}



//b.java
package com.example.p;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.support.v4.app.NavUtils;

public class b extends Activity {

private TextView tv_b=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
tv_b.setText("B");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_b, menu);
return true;
}


}



androidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.p"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".a"
android:label="@string/title_activity_a" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".b"
android:label="@string/title_activity_b" >
</activity>
</application>

</manifest>


运行界面为:

错误提示为:



谢谢了。。
hvk687 2012-07-16
  • 打赏
  • 举报
回复
错误提示呢
wo_buhui 2012-07-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

super.onCreate(savedInstanceState);
this.myTextView=(TextView)findViewById(R.id.a);//这里是我感觉不对的地方
this.myTextView.setText("This Is Other Activty!");
这些操作,一定要放在setoncontentview的后面的,你……
[/Quote]


super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
View v=findViewById(R.id.a);
System.out.println(v);
tv=(TextView)v;
// tv.setText("This Is Other Activty!");//调试到这句话出问题


谢谢您的回复,我加上了setContentView了,还是出现了问题
hvk687 2012-07-16
  • 打赏
  • 举报
回复
super.onCreate(savedInstanceState);
this.myTextView=(TextView)findViewById(R.id.a);//这里是我感觉不对的地方
this.myTextView.setText("This Is Other Activty!");
这些操作,一定要放在setoncontentview的后面的,你view都还没inflate,怎么能得到view的实例呢
wo_buhui 2012-07-16
  • 打赏
  • 举报
回复
自己顶一下
AMinfo 2012-07-16
  • 打赏
  • 举报
回复
哪个Activity出错,要发这个Activity完整代码上来,以及完整的Log出错提示上来。

[Quote=引用 11 楼 的回复:]
难道真的没人 遇到过这个问题么,我把xml文件中的RelativeLayout改成LinearLayout效果瞬间就出来了,我在想是不是RelativeLayout有某些不一样的限制么,坐等高手。
[/Quote]
hvk687 2012-07-16
  • 打赏
  • 举报
回复
lint是sdk tools16上提供的一个新功能,可以帮助你整理resource,提示resource问题,如resoure冗余等
hvk687 2012-07-16
  • 打赏
  • 举报
回复
Caused by: java.lang.NullPointerException
07-16 07:25:50.732: E/AndroidRuntime(1173): at com.example.activity2.OtherActivity.onCreate(OtherActivity.java:18)
空指针啊
wo_buhui 2012-07-16
  • 打赏
  • 举报
回复
难道真的没人 遇到过这个问题么,我把xml文件中的RelativeLayout改成LinearLayout效果瞬间就出来了,我在想是不是RelativeLayout有某些不一样的限制么,坐等高手。
wo_buhui 2012-07-16
  • 打赏
  • 举报
回复
我是菜鸟 ,好像是在写onCreate方法的时候按ctrl+1加上去的,我也不知道什么意思,我新建了一个,这里没有出现问题。找来找去问题就出现在OtherActivity里边TextView在setText的时候出现问题。[Quote=引用 9 楼 的回复:]
我将你的代码COPY下来了,删掉@SuppressLint("ParserError")
import android.annotation.SuppressLint;
import android.support.v4.app.NavUtils;
运行正常.

我加上这三句话,总是显示程序错误,说是找不到SupperessLint这个类.这个类是做什么用的?
[/Quote]
anniegyp 2012-07-16
  • 打赏
  • 举报
回复
我将你的代码COPY下来了,删掉@SuppressLint("ParserError")
import android.annotation.SuppressLint;
import android.support.v4.app.NavUtils;
运行正常.

我加上这三句话,总是显示程序错误,说是找不到SupperessLint这个类.这个类是做什么用的?
wo_buhui 2012-07-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
看看ddms中的logcat,
[/Quote]

不知道 什么事ddms 看看这个行不行
07-16 07:25:47.022: E/Trace(1173): error opening trace file: No such file or directory (2)
07-16 07:25:50.732: E/AndroidRuntime(1173): FATAL EXCEPTION: main
07-16 07:25:50.732: E/AndroidRuntime(1173): java.lang.RuntimeException: Unable to start activity ComponentInfo

{com.example.activity/com.example.activity.OtherActivity}: java.lang.NullPointerException
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.app.ActivityThread.access$600(ActivityThread.java:130)
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.os.Handler.dispatchMessage(Handler.java:99)
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.os.Looper.loop(Looper.java:137)
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.app.ActivityThread.main(ActivityThread.java:4745)
07-16 07:25:50.732: E/AndroidRuntime(1173): at java.lang.reflect.Method.invokeNative(Native Method)
07-16 07:25:50.732: E/AndroidRuntime(1173): at java.lang.reflect.Method.invoke(Method.java:511)
07-16 07:25:50.732: E/AndroidRuntime(1173): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-16 07:25:50.732: E/AndroidRuntime(1173): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-16 07:25:50.732: E/AndroidRuntime(1173): at dalvik.system.NativeStart.main(Native Method)
07-16 07:25:50.732: E/AndroidRuntime(1173): Caused by: java.lang.NullPointerException
07-16 07:25:50.732: E/AndroidRuntime(1173): at com.example.activity2.OtherActivity.onCreate(OtherActivity.java:18)
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.app.Activity.performCreate(Activity.java:5008)
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
07-16 07:25:50.732: E/AndroidRuntime(1173): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
07-16 07:25:50.732: E/AndroidRuntime(1173): ... 11 more
hvk687 2012-07-16
  • 打赏
  • 举报
回复
看看ddms中的logcat,
wo_buhui 2012-07-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
错误提示呢
[/Quote]

控制台没有错误提示,但是在avd里边有 unfortunately activity has stopped

80,357

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧