[英]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.