открывать различные действия из наложений карт - PullRequest
0 голосов
/ 02 ноября 2011

Я очень мало опытный программист Android.

У меня есть действие в списке, и каждый элемент списка открывает новое действие. В приложении есть карта, на которой отображаются всплывающие подсказки с указанием местоположений. Есть, скажем, 4 местоположения, когда я нажимаю на любое наложение шара, мне нужна активность соответствующего индекса. Например: если я нажимаю на всплывающее окно с индексом = 1, мне нужно отобразить 1-й элемент списка в упражнении.

В настоящее время я использую код ниже.

@Override
protected boolean onBalloonTap(int index, OverlayItem item) {

    Toast.makeText(c, "onBalloonTap for overlay index " + index,
            Toast.LENGTH_LONG).show();
    int index1 = index;
    Intent i = new Intent(c,FestivalEvents.class);
    i.putExtra("banner", "index1");
    c.startActivity(i);

    return true;
}

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

Bundle eventExtra = getIntent().getExtras();
    if(eventExtra!=null){
        int position = eventExtra.getInt("banner");
        Log.i("banner", "" + position);
        switch(position){
        case 0: Toast.makeText(mContext, ""+ position, Toast.LENGTH_LONG).show();setUpDesc(position);break;
        case 1:Toast.makeText(mContext, ""+ position,Toast.LENGTH_LONG).show();setUpDesc(position);break;
        case 2:Toast.makeText(mContext, ""+ position, Toast.LENGTH_LONG).show();setUpDesc(position);break;
        case 3:Toast.makeText(mContext, ""+ position, Toast.LENGTH_LONG).show();setUpDesc(position);break;

        }

    }

приложение вылетает с исключением из-за нулевого указателя с этим кодом. Я надеюсь, что мой код является правильным в получении намерений. Или, может быть, я ошибаюсь в обращении с целью получения. Я с большим удовольствием решаю это. Кто-нибудь, пожалуйста, скажите мне, где я мог ошибиться?

EDIT мой logcat:

11-02 18:45:38.858: ERROR/AndroidRuntime(21168): FATAL EXCEPTION: main 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sysponent.bedford/com.sysponent.bedford.FestivalEvents}: java.lang.NullPointerException 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at android.os.Handler.dispatchMessage(Handler.java:99) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at android.os.Looper.loop(Looper.java:130) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at android.app.ActivityThread.main(ActivityThread.java:3687) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at java.lang.reflect.Method.invokeNative(Native Method) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at java.lang.reflect.Method.invoke(Method.java:507) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168):at dalvik.system.NativeStart.main(Native Method) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): Caused by: java.lang.NullPointerException 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at com.sysponent.bedford.FestivalEvents.onCreate(FestivalEvents.java:239) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 11-02 18:45:38.858: ERROR/AndroidRuntime(21168):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)

Спасибо

1 Ответ

0 голосов
/ 02 ноября 2011
i.putExtra("banner", "index1");

Разве это не должно быть

  i.putExtra("banner", index1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...