MapFragment и страшное исключение "Duplicate id" - как использовать MapFragment в AlertDialog

Итак, у меня есть ошибка, описанная в этом посте:

Я искал SO и нашел несколько объяснений, почему я получаю эту ошибку:

и так далее.

Моя проблема в том, что я не совсем понимаю, как использовать Фрагменты (да, я прочитал часть "Фрагменты" на сайтах разработчиков Android) и, в частности, как решить мою конкретную проблему.

У меня есть фрагмент под названием "BookingList". Этот BookingList имеет строки с бронированиями, и каждая строка может быть нажата. Когда я нажимаю, я показываю диалог с некоторой информацией об этом бронировании и карту. Список представляет собой ListView, а onClickListener выглядит так:

public class BookingList extends Fragment {

// ... code code code

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
       // ... code

       // ... code

       list.setOnItemClickListener(new AdapterView.OnItemClickListener() 
       {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id)
          {
              BookingLight bl = (BookingLight)bookingRowAdapter.getRow(position);
              String name = bl.Customer.Firstname + " " + bl.Customer.Lastname;
              Toast.makeText(getActivity(), "Öppnar " + name, Toast.LENGTH_SHORT).show();

              Handler myHandler = new Handler(); 
              myHandler.postDelayed(new Runnable()
              {
                  @Override
                  public void run()
                  {
                      View detailsView = infl.inflate(R.layout.booking_details, null);
                      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                      builder.setView(detailsView);
                      builder.create().show();
                  }
              }, 500);
          }
      });

Как видите, я просто раздуваю booking_details, который представляет собой простой View, содержащий MapFragment.

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

У меня есть смутная идея использовать FragmentManager, но я точно не знаю, как именно.

Может кто-нибудь объяснить мне это возможно?

0 ответов

Другие вопросы по тегам