2011-05-12 48 views
1

我正在编写一个Android应用程序,其中我有一个Map活动,其中有几个按钮,哪些不是。我有一个map.xml用于这个布局。在这张地图上,我通过使用我在网上找到的这个库设置了注释和“注释气球”(我忘了名字,但如果你们想知道的话,我会找到它的)。这部分工作正常。当我在另一个xml中放置一个按钮时(将一个按钮放在用于注释气球的“注释气球”overlay xml中)会出现问题。我想检测我的地图活动中的点击,但似乎永远不会使用onClick方法。这是我在我的活动正在做的设置监听器:无法在Android中的活动中设置按钮监听器

LinearLayout layout = new LinearLayout(getApplicationContext()); 
    LayoutInflater inflater = (LayoutInflater) getApplicationContext() 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v = inflater.inflate(R.layout.balloon_overlay, layout); 

    Button quickPathfindButton = (Button) v.findViewById(R.id.map_quickpathfind_button); 
    quickPathfindButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      quickPathfind(); 
     } 
    }); 

它似乎永远不会在onclick方法。你们知道为什么会出现这种情况吗?如果你不明白我的问题,请告诉我。这很难说出来。

谢谢!

回答

1

您将侦听器附加到不属于该活动一部分的视图层次结构中的按钮。尝试在xml中设置按钮的onClick属性并在您的活动中编写该方法。它应该在点击时自动调用方法。

+0

我考虑过这个问题,但是我坚持的部分是如何告诉xml中执行点击活动的按钮?在此Map活动中,我将setContentView(...)设置为我的地图xml,而不是气球叠加层xml。它会自动找到它吗? – Sahir 2011-05-12 19:13:44

+0

我认为,一旦气球重叠被添加到视图层次结构中。试试看看。 – 2011-05-12 19:24:00

+0

好吧,我给了它一个镜头。它没有工作。它给我的错误是该方法在活动中找不到。是的,我公开了这个方法。我认为问题在于我没有告诉我的地图活动,这个气球覆盖层是我的一部分。从地图活动调用的其他重叠类中调用气球覆盖图。 – Sahir 2011-05-12 19:39:47