无法从android中的当前视图导航到另一个视图

时间:2012-02-10 06:41:47

标签: android

我刚刚开始研究android所以即时提出这么简单的问题。我试图导航(从一个视图移动到另一个视图)。此代码显示没有错误,并显示第一个视图中的按钮。但是,当我点击按钮时没有任何反应,应用程序崩溃。任何人都可以帮我解决我的代码中出错的地方。

pushActivity.java

  package com.myapp.pus;

    import android.app.Activity;
    import android.content.Intent;

    import android.os.Bundle;
    import android.widget.Button;

    import android.view.View;
    public class PushActivity extends Activity {

        Button mybtn;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mybtn = (Button)findViewById(R.id.mybtn);
            mybtn.setOnClickListener(new View.OnClickListener(){

                public void onClick(View view) {
                    Intent nextScreen = new Intent(getApplicationContext(), SecondScreen.class);
                   // startActivity(new Intent(action));
                    startActivity(nextScreen);
                }
            });



    }
 }

main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/mybtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       />

</LinearLayout>

第二个屏幕

package com.myapp.pus;

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



public class SecondScreen extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen2);            
        // Binding Click event to Button    
    }    
}

Screen2.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


</LinearLayout>

提前致谢。希望得到你的帮助。

6 个答案:

答案 0 :(得分:2)

您需要为AndroidManifest.xml定义SecondScreen活动,如下所示

标签完成前

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

答案 1 :(得分:2)

Activity

中声明秒屏AndroidManifest.xml

答案 2 :(得分:1)

getApplicationContext()替换为PushActivity.this

此外,您应该检查logcat日志中的确切错误和堆栈跟踪,以确切了解引发异常的代码行或问题所在。

答案 3 :(得分:1)

您在清单文件中的声明不正确.....

<activity android:name=".SecondScreen">
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 

</activity>

将其更改为

<activity android:name=".SecondScreen"> <activity>

看问题是你已宣布活动为主要活动......

!11        ! 删除2行

答案 4 :(得分:0)

您需要为View.OnClickListener类实现PushActivity。 e.g。

public class Now extends Activity implements View.OnClickListener

答案 5 :(得分:0)

AndroidManifest.xml文件中,在应用程序标记内,您应该定义要在第一个活动按钮上显示的第二个活动。

例如:

    <application
    <activity
        android:name=".SecondActivity">
    </activity>
    </application>