无法在活动之间切换

时间:2012-02-09 12:58:55

标签: java android android-activity android-intent

抱歉提出愚蠢的问题,java和Android对我来说都是新手;)

我的问题:我无法在一个非常简单的应用程序中切换两个活动。我尝试过类似主题中描述的解决方案,但它没有用。

所以这是我的第一个活动(我没有粘贴导入):

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

public void OnStart(){
    Button Btn = (Button)findViewById(R.id.btnNext);     
    Btn.setOnClickListener(new OnClickListener() {

        public void onClick(View Button) {

    Intent myIntent = new Intent(OneActivity.this, UserInput.class); 
    OneActivity.this.startActivity(myIntent);

        } 

});
}

}

第二个Activity非常简单 - 它只是加载一个名为userinput.xml的布局:

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

}

}

Manifest的应用程序部分如下所示:

 <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

    <activity
        android:name=".OneActivity"
        android:label="@string/app_name" >

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


        <activity 
            android:name=".UserInput" 
            android:label="@string/app_name" />


    </activity>
</application>

当我运行应用程序并点击按钮没有任何反应。哪里可能出现问题?

//好吧,我已将代码放入onCreate()方法中,所以现在看起来如下:

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

    Button Btn = (Button)findViewById(R.id.btnNext);     
    Btn.setOnClickListener(new OnClickListener() {

        public void onClick(View Button) {

    Intent myIntent = new Intent(OneActivity.this, UserInput.class); 
    OneActivity.this.startActivity(myIntent);

        } 

});
}

}

现在,只要单击“下一步”按钮,应用程序就会崩溃(强制关闭)。

4 个答案:

答案 0 :(得分:5)

使用大写“O”定义onStart()函数。这就是永远不会调用函数的原因。

你的onStart():

public void OnStart(){ ... }

应该如何:

// Note the lowercase 'o' in onStart
public void onStart(){ ... }

另请注意,当您要覆盖方法时,在函数名称上方使用@Override将有助于防止出现这些错误,因为Eclipse(或您使用的任何IDE)会告诉您实际上并未覆盖某个函数。 / p>

答案 1 :(得分:1)

在onCreate()方法中写下面的代码:

Button Btn = (Button)findViewById(R.id.btnNext);     
    Btn.setOnClickListener(new OnClickListener() {

        public void onClick(View Button) {

    Intent myIntent = new Intent(OneActivity.this, UserInput.class); 
    startActivity(myIntent);

        } 

});

Android清单文件的第二次更正:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

    <activity
        android:name=".OneActivity"
        android:label="@string/app_name" >

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

        <activity 
            android:name=".UserInput" 
            android:label="@string/app_name" />



</application>

答案 2 :(得分:0)

按行

检查
Intent myIntent = new Intent(OneAvtivity.this, SecondActivity.class); 
startActivity(myIntent);

您的班级名称是UserIpnout,您编写的是SecondActivity.class

Intent myIntent = new Intent(OneAvtivity.this, UserInput .class); 
startActivity(myIntent);

答案 3 :(得分:0)

您可以移动onCreate()中的所有代码并按此简化

startActivity(new Intent(this, UserInput.class));

但我不明白你为什么要开始这样的其他活动