2012-06-20 41 views
0

我是Android(和java)的初学者,我只是在玩耍,想在点击按钮后创建新的视图。这是我到目前为止的代码:新的意图,如何链接到我的课堂?

主类

package myTests.homeSpace; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class TestsActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Button button1 = (Button) findViewById(R.id.button1); 
     button1.setOnClickListener(new OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       Intent myIntent = new Intent(TestsActivity.this, screen1.class); 
       startActivity(myIntent); 
      } 
     }); 
    } 
} 

类点击按钮

package myTests.homeSpace; 

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

public class screen1 extends Activity { 
    @Override 
    public void onCreate(Bundle SavedBundleInstance) 
    { 
     super.onCreate(SavedBundleInstance); 
     setContentView(R.layout.screen1); 
    } 
} 

的问题是,击中按钮后,我得到了“Unforunately,测试后运行已停止“错误。 (“测试”是应用程序名称)。我知道(或猜测)问题是在这一行Intent myIntent = new Intent(TestsActivity.this, screen1.class); 我想我参考类screen1是不对的,但我不知道为什么。没有编译错误或警告,layout .xmls不应该是错误的。

难道你们中的任何人都可以为我提供任何解决方案吗?

编辑

清单

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="myTests.homeSpace" 
    android:versionCode="1" 
    android:versionName="1.0" > 

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

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".TestsActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 

控制台输出

[2012-06-20 19:56:21 - ddms] null 
java.lang.NullPointerException 
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) 
    at com.android.ddmlib.Client.sendAndConsume(Client.java:575) 
    at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142) 
    at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65) 
    at com.android.ddmlib.Client.getJdwpPacket(Client.java:672) 
    at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317) 
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263) 
+0

你可以发布你的'AndroidManifest.xml'文件,以及LogCat错误吗? (你可以在Eclipse中找到后者。)很可能你还没有声明Activity。 – Eric

+1

您可能忘记在清单文件中声明'screen1'活动。 –

回答

2

我同意,不在你的Manifest文件(AndroidManifest.xml)中声明活动很可能是你的问题。有关更多信息,请参阅android开发人员page的活动。下面是相关的说明:

声明一个活性(一个活动子类)实现的 应用程序的可视化用户界面的一部分。所有活动必须由清单文件中的元素表示的 。任何没有声明的 都不会被系统看到,也不会被 运行。

我刚发布这个,所以你会有更多的空间去研究你自己的。

4

,如果你在那里读崩溃日志地方我打赌说,你忘了在Manifest中宣布这个活动吗?

0

声明你的第二个活动在manifest.xml为:

<activity 
     android:name=".screen1"> 
    </activity> 

只需在下面的第一个活动的声明。