1

我有一个 mapView 类和一个 StoreFinder 类。我希望能够按下 AlertDialog 中的按钮,该按钮保存地理点值经度和纬度。我希望它在我的 MapView 中显示经度和纬度值的位置。

简单的:

在 ALERTDIALOG -> MapView 显示位置中按下带有经度和纬度的按钮。

我该怎么做呢?

感谢您的充裕时间。

代码:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.storefinder_bars);

    sirius();
}

public void sirius() {
    ImageButton hoursButton = (ImageButton) findViewById(R.id.hours);
    ImageButton addressButton = (ImageButton) findViewById(R.id.address);
    //ImageButton phoneButton = (ImageButton) findViewById(R.id.phone);


    final AlertDialog.Builder siriushours = new AlertDialog.Builder(this);
    hoursButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            siriushours.setTitle("Opening Hours");
            siriushours.setMessage(

                       "\n---Monday---\n" +        "CLOSED" 
                     + "\n\n---Tuesday---\n" +     "CLOSED" 
                     + "\n\n---Wednesday---\n" +   "22:00 - 3:00" 
                     + "\n\n---Thursday---\n" +    "CLOSED" 
                     + "\n\n---Friday---\n" +      "22:00 - 3:00"
                     + "\n\n---Saturday---\n" +    "22:00 - 3:00"
                     + "\n\n---Sunday---\n" +      "CLOSED");

            siriushours.setPositiveButton("OK",
                    new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog,
                                int which) {
                            dialog.dismiss();
                        }

                    });

            siriushours.show();
        }
    });

    //ADDRESS
    final AlertDialog.Builder siriusadd = new AlertDialog.Builder(this);
    addressButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            siriusadd.setTitle("Address");
            siriusadd.setMessage(

                    "33 Belvoir Street, Leicester , LE1 6SL");



            siriusadd.setPositiveButton("Show On Map",
                    new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog,
                                int which) {




                        }

                    });

            siriusadd.setNegativeButton("Route",
                    new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog,
                                int which) {
                            Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
                                    Uri.parse("http://maps.google.com/maps?daddr="+52.63274+","+-1.13145));
                                    startActivity(intent);
                        }

                    });


            siriusadd.show();
        }
    });


}

我想在此处设置正按钮:“siriusadd.setPositiveButton("在地图上显示",”以允许我从 AlertDialog 跳转到我的 MapView 地理坐标。如果没有,我有气球逐项布局,我有标记地点。我希望他们能跳到那个地方。但是,地理点可以。

为所有的帮助干杯。

4

2 回答 2

1

用于MapController动画到所需的地理点。MapController为您实例化MapView

private MapController mc;
mc = mapView.getController();

为按钮初始化对话框集后onClickListener(这里是正按钮的示例:

dialog.setPositiveButton(mContext.getString(R.string.photo), new DialogInterface.OnClickListener() { 

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub          
                mc.animateTo(geoPoint);
            }

        });
于 2012-04-22T14:03:08.187 回答
0

只需使用 putExtra 调用意图:

siriusadd.setPositiveButton("Show On Map",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog,
                            int which) {

                        Intent myIntent = new Intent(getApplicationContext(),
                            MyMapActivity.class);
                        myIntent.putExtra("id", anId);
                        // add any additional informations with other key values 
                        // (latitude or longitude)
                        startActivityForResult(myIntent, 0);

                    }

                });

在您的地图活动的 onResume 方法中将这些信息获取到您的地图活动中并适当地设置您的地图视图:

@Override
protected void onResume() {
    super.onResume();
    Intent intent = getIntent();
    if (intent.getStringExtra("id") == null) {
        // your map logic goes here
    }

}
于 2012-04-22T17:56:19.557 回答