MapFragment和可怕的“Duplicate id”异常 - 如何在AlertDialog中使用MapFragment

时间:2013-12-09 20:42:21

标签: android fragment mapfragment

所以,我有这篇文章中描述的错误:

我搜索了SO并找到了几个解释我为什么会收到此错误的解释:

等等。

我的问题是,我认为我不完全理解片段的使用方式(是的,我已经阅读了Android开发网站上片段的部分),更具体地说,是如何解决我的具体问题。

我有一个名为“BookingList”的片段。该BookingList包含预订行,每行都可以单击。当我点击时,我会显示一个Dialog,其中包含有关该预订的一些信息以及地图。列表是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 这是一个包含MapFragment的简单视图。

第二次单击其中一行时,我得到上面提到的异常。由于视图本身不是片段(它到目前为止只是一个视图),我不确定如何避免这种异常。

我有一个模糊的想法,使用FragmentManager,但我不确定如何。

有人可以向我解释这个吗?

0 个答案:

没有答案