2014-12-27 84 views
0

我已经在GoogleMap上实现InfoWindowAdapter反对膨胀点击标记的视图充气视图显示完美,但OnclickListener不工作在该视图的按钮甚至没有按钮被触摸。触摸被禁用的充气视图

实际上的情况是,当我上标记点击进来地图片段面前这可能是问题的发现膨胀的观点并没有触摸或点击

下面膨胀的观点是我的代码片段

MainActivity.java

setContentView(R.layout.activity_map_new); 

    View view = findViewById(R.id.map); 
    view.setEnabled(false); 

    map = ((MapFragment) getFragmentManager() 
      .findFragmentById(R.id.map)).getMap(); 
    map.getUiSettings().setZoomControlsEnabled(true); 
    map.getUiSettings().setMyLocationButtonEnabled(true); 


    LatLng main = new LatLng(Double.parseDouble("31.5497"), Double.parseDouble("74.3436")); 

    map.addMarker(new MarkerOptions() 
    .title("Twitter") 
    .snippet("tweet:") 
    .position(main) 
    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN)));  

    map.setInfoWindowAdapter(new CustomMapAdaptor(getLayoutInflater().inflate(R.layout.activity_test, null))); 

CustomMapAdaptor.java

public class CustomMapAdaptor implements InfoWindowAdapter, OnClickListener { 

private View view; 
private Button btn1; 

public CustomMapAdaptor(View v) { 
    view = v; 
} 

@Override 
public View getInfoContents(Marker marker) { 

    btn1 = (Button) view.findViewById(R.id.btn1); 
    Toast.makeText(view.getContext(), "getInfoContent call", Toast.LENGTH_SHORT).show(); 


    btn1.setOnClickListener(this); 

    view.setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      Toast.makeText(view.getContext(), "Bitches please i am touched", Toast.LENGTH_SHORT).show(); 
      return false; 
     } 
    }); 
    return view; 
} 

@Override 
public View getInfoWindow(Marker marker) { 
    return null; 
} 

@Override 
public void onClick(View v) { 
    Toast.makeText(view.getContext(), "Btn1 also clicked", Toast.LENGTH_SHORT).show(); 

} 

}

回答

0

尝试设置使用这个监听器:

mMap.setOnInfoWindowClickListener(新OnInfoWindowClickListener()