まず、これはかなり長い投稿であることが判明したので、それほど難しくはないのでご容赦ください。ただし、正しく説明していない場合は、何かを明確にする必要があるかもしれません。先日、このフォーラムの人たちの助けを借りて、「mapClass」クラスを部分的に設定することができましたが、問題があり、正しく実行されていないので、可能であれば助けを求めています。ご覧いただけるように、以下のコードを投稿します。
私が持っているのは、アイテムの配列のlistViewを設定する「Dundrum」クラスです。
次に、iveは'dundrumSelector'クラスを取得しました。これを使用して、listItemsにsetOnClickListener()メソッドを設定し、それらを正しいビューにリンクします。
これは私のDUNDDRUMセレクタークラスです...
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);
}
});
などなど...
次に、このクラスの上部に表示されるボタンを表す静的intを設定しました。これは、mapClassアクティビティで、1つのメソッドが必要なためです。これは、変化するのは1つだけだからです。各場所への座標。すなわち。メソッドへの異なる座標以外は基本的に同じことを行う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」でやろうとしていることのように、マップ座標を設定するクラスを1つだけ持つことです。
誰かがこれを行うための別の方法を助けたり提案したりできますか?これを読んでくれてありがとう。