Сбой кнопки нижней панели - PullRequest
0 голосов
/ 27 мая 2018

Я пытался выяснить, почему внезапно моя навигационная кнопка нижней панели для определенного действия вызывает сбои.

В MainActivity у меня есть следующая навигационная панель нижней панели:

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
        = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.navigation_home:
                //mTextMessage.setText(R.string.title_home);
                return true;
            case R.id.navigation_events:
                //mTextMessage.setText(R.string.title_events);
                return true;
            case R.id.navigation_offpeak:
                //mTextMessage.setText(R.string.title_offpeak);
                return true;
            case R.id.navigation_deals:
                Intent reservationsIntent = new Intent(MainActivity.this, DealsHomeActivity.class);
                startActivity(reservationsIntent);
                //mTextMessage.setText(R.string.title_bookings);
                return true;
            case R.id.navigation_me:
                Intent memberProfileIntent = new Intent(MainActivity.this, MemberProfileActivity.class);
                startActivity(memberProfileIntent);
                //logout();
                //mTextMessage.setText(R.string.title_me);
                return true;
        }
        return false;
    }
};

Затем моя деятельность создается так же, как и все другие мои действия, например MemberProfileActivity.class.

Однако нажатие кнопки для перехода к MemberProfileActivity.class работает, как и ожидалось, на телефоне, но при этом для результатов DealsHomeActivity.class.в случае сбоя со следующим logcat:

05-27 15: 38: 40.473 31978-31978 / asia.diningcity.android E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: asia.diningcity.android,PID: 31978 java.lang.RuntimeException: Невозможно создать экземпляр активности. ComponentInfo {asia.diningcity.android/asia.diningcity.android.activities.DealsHomeActivity}: java.lang.InstantiationException: java.lang.Class не может быть создан в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2737) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2911) на android.app.ActivityThread.-wrap11 (неизвестный источник: 0) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1608) на android.os.Handler.dispatchMessage(Handler.java:105) в android.os.Looper.loop (Looper.java:164) в android.app.ActivityThread.main (ActivityThread.java:6665) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:781), вызванный: java.lang.InstantiationException:java.lang.Class не может быть создан на java.lang.Class.newInstance (собственный метод) на android.app.Instrumentation.newActivity (Instrumentation.java:1174) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2727)на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2911) на android.app.ActivityThread.-wrap11 (неизвестный источник: 0) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1608) на android.os.Handler.dispatchMessage (Handler.java:105) на android.os.Looper.loop (Looper.java:164) на android.app.ActivityThread.main (ActivityThread.java:6665)) на java.lang.reflect.Method.invoke (собственный метод) на com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) на com.android.internal.os.ZygoteInit.main (ZygoteInit).java: 781)

Я рассмотрел два действия в Java, чтобы увидеть, есть ли какие-либо различия в методе onCreate для запуска действия, но нет.

Итак, яне понимаю, откуда это может исходить.

Обратите внимание также, что раньше это работало нормально, и с тех пор я не трогал строку меню и не выполнял действия по сделкам, поэтому не знаю, что могловызвал это.

1 Ответ

0 голосов
/ 27 мая 2018

я считаю, что ваш класс является либо абстрактным классом, либо закрытым классом, экземпляры абстрактных или частных классов не могут быть созданы,

Абстрактные классы по определению не являются экземплярами.

если ваш классабстрактный или частный, я предполагаю, что это что-то вроде

private abstract class DealsHomeActivity extends AppCompatActivity

изменить на

public class DealsHomeActivity extends AppCompatActivity
...