簡體   English   中英

Android Studio-單擊按鈕不會切換到下一個活動

[英]Android Studio - Button click not switching to next activity

在我的按鈕上添加了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中添加了按鈕,並將布局與活動相關聯。 還向AndroidManifest.xml中添加了MainActivity.java和Step1.java。我們將不勝感激!

通常,要啟動一項活動,請指定當前一個實例和您要打開的實例。 在您的情況下,將是這樣的:

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 ,並在創建意圖時使用相同的字符串。

我終於讓我的按鈕工作了。 我必須在第二項活動的類別中使用“ .DEFAULT”。

<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>

另外,我還必須故意指定活動“ .this”。

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

我調試了應用程序,然后單擊該按鈕即可啟動Step1。 感謝您的所有幫助! :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM