Я не могу закрыть алертиалдиалог - PullRequest
0 голосов
/ 31 января 2011

Я создал в классе алертиддиолог. Я положил пользовательскую кнопку закрытия и еще одну кнопку для звонка. Я установил эти элементы в другом классе mapActivity.

На самом деле у меня две проблемы. Во-первых, когда я пытаюсь закрыть свой алертиддиолог с помощью кнопки закрытия, ничего не происходит, во-вторых, когда я пытаюсь позвонить, я получаю ошибку исключения IndexOutofBound.

Вот мой код:

            Context mContext = getApplicationContext();
            LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
            View layout = inflater.inflate(R.layout.alertmenu,
                                           (ViewGroup) findViewById(R.id.widget0));

            ImageButton alertimagebutton = (ImageButton) layout.findViewById(R.id.closebutton);
            alertimagebutton.setImageResource(R.drawable.close_button);

            Button alertphone = (Button) layout.findViewById(R.id.widget35); 
            alertphone.setText(phonevalue.get(i));
 //call             
            alertphone.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {

                    try {
                        System.out.println(phonevalue.get(i));
                        Intent callIntent = new Intent(Intent.ACTION_CALL);
                        callIntent.setData(Uri.parse("tel:"+phonevalue.get(i)));
                        startActivity(callIntent);
                    } catch (Exception e) {

                        System.out.println("Couldn't make a call= "+e);

                    }

                }
            });
//close                 
         alertimagebutton.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v) {

                    System.out.println("closed");  // logcat shows this message

                    MyClass.alertDialog.dismiss();
                }
            });
           MyClass.alertDialog = builder.create();
           mapOverlays.add(MyClass);

Примечание: я сделал то же самое для списка активности, и он работает нормально. Когда пользователь нажимает на детализированный вид, он показывает моего alerttdiaolog и может закрыть и сделать звонок. Но я создал своего алертиаддиолога в той же деятельности, а не в другом классе.

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

РЕДАКТИРОВАТЬ: Я решил проблему телефонного звонка. Я объявил другую строковую переменную после того, как установил свой phoneno:

        Button alertphone = (Button) layout.findViewById(R.id.widget35); 
        alertphone.setText(phonevalue.get(i));
        final String phone = phonevalue.get(i);

И я изменил позывной:

                    callIntent.setData(Uri.parse("tel:"+phone));

Теперь все работает нормально, но я не могу закрыть диалоговое окно.

...