동일한 패키지 아래에 두 개의 활동이 있다고 가정합니다.
HomeActivity (런처 활동)
SpinnerActivity
둘 다에 등록되어 있습니다 AndroidManifest.xml
.
이제 활동 점프를 구현하는 메서드를 만들려고합니다.
private void redirectToActivity(String dest) {
Intent intent = new Intent();
intent.setClassName(this,dest);
startActivity(intent);
}
그리고 나는 그것을 HomeActivity
:
redirectToActivity("SpinnerActivity");
하지만이 오류가 발생했습니다.
명시 적 활동 클래스 {com.app/SpinnerActivity}를 찾을 수 없습니다. AndroidManifest.xml에서이 활동을 선언 했습니까?
이 줄을 추가하려고했습니다.
intent.setPackage("com.app");
작동하지 않습니다.
뭐가 문제 야?
// 전역 적으로 또는 OnCreate () 메서드에서 정의
// 모든 활동이 동일한 패키지에있는 경우이 접근 방식이 작동합니다.
final String packageName = this.getClass().getPackage().getName();
final Context context = this;
// call your method like this i.e SpinnerActivity
private void redirectToActivity(String dest) {
try {
Class c = Class.forName(packageName + "." + dest);
startActivity(new Intent(context, c));
} catch (ClassNotFoundException e) {
Toast.makeText(context, String.valueOf(e), 5000).show();
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다