我正在尝试学习Android开发,并已完成了基础教程。我正在申请高尔夫记分卡。最初,我来自主屏幕-> SelectCourseActivity->记分卡。一切工作正常,但我想摆脱SelectCourseActivity,因此我尝试使主屏幕上的主按钮直接指向记分卡,但现在它始终会引发以下异常:
catch (InvocationTargetException e) {
throw new IllegalStateException(
"Could not execute method for android:onClick", e);
}
这是按钮OnClick的代码:
public void Scorecard(View view) {
Intent MyIntent = new Intent(this, ScorecardActivity.class);
startActivity(MyIntent);
}
是的,我进入了AndroidManifest,并将ScorecardActivity的父级设置为Homescreen。
<application
android:allowBackup="true"
android:icon="@mipmap/wgcc_icon"
android:label="@string/app_name"
android:roundIcon="@mipmap/wgcc_icon_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HomeScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SelectCourseActivity"
android:parentActivityName=".HomeScreen" />
<activity
android:name=".ScorecardActivity"
android:parentActivityName=".HomeScreen" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/btn_dropdown"
android:spinnerMode="dropdown"/>
</application>
即使我使用Git使一切恢复正常后,ScorecardActivity仍然不会启动。非常感谢您的帮助!请让我知道是否需要更多信息。
答案 0 :(得分:1)
如果@DmytroSytro无法正常工作,您可以尝试编辑清单文件,使其外观如下所示,看看是否有帮助。
<application
android:allowBackup="true"
android:icon="@mipmap/wgcc_icon"
android:label="@string/app_name"
android:roundIcon="@mipmap/wgcc_icon_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HomeScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ScorecardActivity"
android:parentActivityName=".HomeScreen">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.android.your_activity_class.MainActivity" />
</activity>
</application>
答案 1 :(得分:0)
在OnCreate中尝试:
Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Homescreen.this, Scorecard.class);
startActivity(intent);
}
});
答案 2 :(得分:0)
我发现了一个愚蠢的错误。我将记分卡所需的信息存储在本地文件中,因为最初我想学习如何在android studio中使用。原来,在尝试将记分卡信息加载到ScorecardActivity OnCreate中之前,我并没有要求访问设备本地文件的权限。作为后续措施,有人知道如何确保在访问信息之前获得许可吗?