程序功能:点下按钮跳转到另一个OtherActivity,并且显示信息。
代码如下:
MainActivity.javapackage 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.javapackage 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出了问题我是新手,困扰很久了这个问题,请教各位高手,谢谢了
代码如下:
MainActivity.javapackage 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.javapackage 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出了问题我是新手,困扰很久了这个问题,请教各位高手,谢谢了
解决方案 »
- android下不能用Fn键?
- 手机访问时,request.getHeader("Accept")获取
- 如何将桌面的应用程序图标和主功能菜单中的应用程序图标变大呢?
- 求助,ListView的更新问题
- android测试中,出现空指针怎么办?如何防止空指针错误。
- xzing条形码识别调用方法求助
- 大家的android环境都是怎么下载配置的?官网链接老断,下不了包呀!!
- Eclipse里如何导入别人的android项目
- android 非root情况下,是否有办法实现app关机和重启shutdown,reboot
- 求助,如何记录安卓系统里某一个app发送和收到的数据。
- PhonestateListener怎么取消监听?
- sipdroid视频通话问题
this.myTextView=(TextView)findViewById(R.id.a);//这里是我感觉不对的地方
this.myTextView.setText("This Is Other Activty!");
这些操作,一定要放在setoncontentview的后面的,你view都还没inflate,怎么能得到view的实例呢
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了,还是出现了问题
控制台没有错误提示,但是在avd里边有 unfortunately activity has stopped
不知道 什么事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
import android.annotation.SuppressLint;
import android.support.v4.app.NavUtils;
运行正常.我加上这三句话,总是显示程序错误,说是找不到SupperessLint这个类.这个类是做什么用的?
07-16 07:25:50.732: E/AndroidRuntime(1173): at com.example.activity2.OtherActivity.onCreate(OtherActivity.java:18)
空指针啊
程序描述:程序名称为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>
运行界面为:错误提示为:谢谢了。。
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
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.javapublic 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.javapublic 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>