首先,这是一个相当长的帖子,所以请耐心等待,因为它并不太难,但如果我没有正确解释,您可能需要与我澄清一些事情。因此,前几天在这个论坛上的一些人的帮助下,我设法部分设置了我的“mapClass”类,但我遇到了麻烦,它运行不正确,所以如果可能的话,我希望得到一些帮助。我将在下面发布代码,以便您查看。
我得到的是一个“Dundrum”类,它为一组项目设置 listView。
然后我得到了一个 'dundrumSelector' 类,我用它来设置 listItems 上的 setOnClickListener() 方法并将它们链接到它们的正确视图。
这是我的 DUNDDRUM SELECTOR 类....
public static final int BUTTON1 = R.id.anandaAddressButton;
public static final int BUTTON2 = R.id.bramblesCafeAddressButton;
public static final int BUTTON3 = R.id.brannigansAddressButton;
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);
int position = getIntent().getExtras().getInt("position");
if(position == 0){
setContentView(R.layout.ananda);
};
if(position == 1){
setContentView(R.layout.bramblescafe);
};
if(position == 2){
setContentView(R.layout.brannigans);
Button anandabutton = (Button) findViewById(R.id.anandaAddressButton); anandabutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(),MapClass.class);
myIntent.putExtra("button", BUTTON1);
startActivityForResult(myIntent,0);
}
});
Button bramblesbutton = (Button) findViewById(R.id.bramblesCafeAddressButton);
bramblesbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(),MapClass.class);
myIntent.putExtra("button", BUTTON2);
startActivityForResult(myIntent, 0);
}
});
等等等等……
然后我所做的是设置静态整数来表示您可以在此类顶部看到的按钮,原因是在我的 mapClass 活动中我只想有一个方法,因为唯一不同的是每个位置的坐标。IE。我不想让 100 多个地图类在本质上做同样的事情,而不是在方法中使用不同的坐标。
所以我的地图类如下......
case DundrumSelector.BUTTON1:
handleCoordinates("53.288719","-6.241179");
break;
case DundrumSelector.BUTTON2:
handleCoordinates("53.288719","-6.241179");
break;
case DundrumSelector.BUTTON3:
handleCoordinates("53.288719","-6.241179");
break;
}
}
private void handleCoordinates(String l, String b){
mapView = (MapView) findViewById(R.id.mapView);
LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);
View zoomView = mapView.getZoomControls();
zoomLayout.addView(zoomView,
new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
mapView.displayZoomControls(true);
mc = mapView.getController();
String coordinates[] = {l, b};
double lat = Double.parseDouble(coordinates[0]);
double lng = Double.parseDouble(coordinates[1]);
p = new GeoPoint(
(int) (lat*1E6),
(int) (lng*1E6));
mc.animateTo(p);
mc.setZoom(17);
mapView.invalidate();
}
现在这就是我的问题所在。onClick() 事件甚至无法从 listView 进入正确的视图。我必须先注释掉“DundrumSelector”中的方法,然后才能了解他们的观点。
这就是我不明白的,首先为什么 onClick() 事件不起作用,因为它甚至不在地图所在的下一个视图上。
我知道这是一篇很长的帖子,可能会让人很困惑,所以如果您需要任何澄清,请告诉我..
回顾一下,我想做的只是有一个设置地图坐标的类,就像我在“mapClass”中尝试做的一样。
请有人可以帮助或建议另一种方法!非常感谢大家阅读本文。