Я новичок в кодировании.
Итак, у меня есть переключатель, в котором приложение может выбрать следующий файл, используя строку nextActivityExtra. Intent.putExtra необходимы для других действий, и никакие действия не имеют проблем с их получением. Так что в основном код работает, но только в первом случае. Когда приложение возвращается к этому «переключению активности», оно должно перейти ко второму случаю, и здесь оно не может загрузить MainActivity (оно загружает черный экран и внезапно возвращается к «переключению активности»).
Если я переключу ExplicaioActivity для MainActivity или для любого другого актива, он будет работать нормально, если это не во втором случае. Я действительно не могу понять, что здесь происходит, я также попробовал тот же код с If с похожими результатами.
public class EntreActivities extends AppCompatActivity {
ImageView iconView;
int count;
String levelExtra;
Intent intent;
String nextActivityExtra;
String rutaLevelNumber;
boolean isTaskCompleted;
Class myClass;
public void Rotate(View view) {
RotateAnimation rotateAnimation = new RotateAnimation(0, 30,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 1f);
rotateAnimation.setDuration(3000);
rotateAnimation.setRepeatMode(Animation.REVERSE);
rotateAnimation.setRepeatCount(Animation.INFINITE);
rotateAnimation.setFillAfter(true);
rotateAnimation.setStartOffset(1000);
iconView.setAnimation(rotateAnimation);
}
public void startAct() {
if (getIntent().getBooleanExtra("inTraining", false)) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
Toast.makeText(this, "TTTTtrain", Toast.LENGTH_SHORT).show();
} else {
switch (nextActivityExtra) {
case "ExplicaioActivity":
myClass = ExplicaioActivity.class;
Toast.makeText(EntreActivities.this, "here", Toast.LENGTH_SHORT).show();
intent = new Intent(getApplicationContext(), ExplicaioActivity.class);
intent.putExtra("Level", rutaLevelNumber);
intent.putExtra("inTraining", false);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);
break;
case "MainActivity":
myClass = MainActivity.class;
Toast.makeText(EntreActivities.this, "here", Toast.LENGTH_SHORT).show();
intent.putExtra("Level", rutaLevelNumber);
intent.putExtra("inTraining", false);
intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);
break;
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_entre_activities);
iconView = findViewById(R.id.iconView);
iconView.setRotation(-15);
Intent intent = getIntent();
levelExtra = intent.getStringExtra("Level");
nextActivityExtra = intent.getStringExtra("NextActivity");
rutaLevelNumber = intent.getStringExtra("Level");
Rotate(iconView);
startAct();
}
}
Это журнал ошибок, который я могу взять от AS:
2019-01-12 01:08:12.383 4282-4282/com.example.root.exercicis E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.root.exercicis, PID: 4282
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.root.exercicis/com.example.root.exercicis.EntreActivities}: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference
at com.example.root.exercicis.EntreActivities.startAct(EntreActivities.java:53)
at com.example.root.exercicis.EntreActivities.onCreate(EntreActivities.java:100)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)