程序功能:点下按钮跳转到另一个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出了问题我是新手,困扰很久了这个问题,请教各位高手,谢谢了

解决方案 »

  1.   

    super.onCreate(savedInstanceState);
            this.myTextView=(TextView)findViewById(R.id.a);//这里是我感觉不对的地方
            this.myTextView.setText("This Is Other Activty!");
    这些操作,一定要放在setoncontentview的后面的,你view都还没inflate,怎么能得到view的实例呢
      

  2.   

    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了,还是出现了问题
      

  3.   


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

  4.   


    不知道 什么事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
      

  5.   

    我将你的代码COPY下来了,删掉@SuppressLint("ParserError")
    import android.annotation.SuppressLint;
    import android.support.v4.app.NavUtils;
    运行正常.我加上这三句话,总是显示程序错误,说是找不到SupperessLint这个类.这个类是做什么用的?
      

  6.   

    我是菜鸟 ,好像是在写onCreate方法的时候按ctrl+1加上去的,我也不知道什么意思,我新建了一个,这里没有出现问题。找来找去问题就出现在OtherActivity里边TextView在setText的时候出现问题。
      

  7.   

    难道真的没人 遇到过这个问题么,我把xml文件中的RelativeLayout改成LinearLayout效果瞬间就出来了,我在想是不是RelativeLayout有某些不一样的限制么,坐等高手。
      

  8.   

    Caused by: java.lang.NullPointerException
    07-16 07:25:50.732: E/AndroidRuntime(1173): at com.example.activity2.OtherActivity.onCreate(OtherActivity.java:18)
    空指针啊
      

  9.   

    lint是sdk tools16上提供的一个新功能,可以帮助你整理resource,提示resource问题,如resoure冗余等
      

  10.   

    哪个Activity出错,要发这个Activity完整代码上来,以及完整的Log出错提示上来。
      

  11.   

    以前的那个程序已经找不到了,我重新写了一个,问题依旧,代码如下:
    程序描述:程序名称为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>
    运行界面为:错误提示为:谢谢了。。
      

  12.   

    补充 出错信息:
    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
      

  13.   

    我验证了,你在
    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>