Android Studio - 按钮单击不切换到下一个活动

时间:2014-07-31 18:08:46

标签: java android

在我的按钮上添加了一个OnClickListener。我希望切换到' Step1'单击按钮时的活动。当我调试它时,我点击按钮但没有任何反应。它留在了MyActivity'活动。这是我的主要活动:

package apk.olley102.roothelp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MyActivity extends Activity {
    Button step1btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        step1btn = (Button) findViewById(R.id.step1btn);
        step1btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent openStep = new Intent("apk.olley102.roothelp.Step1");
                startActivity(openStep);
            }
        });
    }
}

我在activity_main.xml中添加了按钮,并将布局与活动相关联。还将MainActivity.java和Step1.java添加到AndroidManifest.xml 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

通常,要启动活动,请指定当前的一个实例和要打开的实例。在你的情况下,它将是这样的:

Intent openStep = new Intent(MyActivity.this, Step1.class);
startActivity(openStep);

如果您仍想使用操作字符串启动它,请检查您的活动是否在AndroidManifest.xml中声明了意图过滤器:

<activity android:name=".Step1">
    <intent-filter>
        <action android:name="apk.olley102.roothelp.Step1" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

另请注意,操作字符串不需要与您的活动名称匹配:例如,您可以将其命名为apk.olley102.roothelp.GOTOSTEP1,并在创建意图时使用相同的字符串。

答案 1 :(得分:-2)

我终于让我的按钮工作了。我不得不使用&#39; .DEFAULT&#39;在我的第二个活动类别中。

<activity
    android:name=".Step1" android:label="@string/app_name"
    android:screenOrientation="portrait"
    android:configChanges="keyboardHidden|orientation">
    <intent-filter>
        <action android:name="apk.olley102.instructroot.Step1" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

此外,我必须指定活动&#39;。这个&#39;在我的意图。

step1btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent openStep = new Intent(MyActivity.this, Step1.class);
        startActivity(openStep);
    }
});

我调试了我的应用程序,现在按钮在点击时启动Step1。感谢您的帮助! :)