AlertDialog не отображается в GoogleMap.паника - PullRequest
0 голосов
/ 29 марта 2012

Я новичок в Android, но мне удалось пройти несколько уроков, чтобы начать меня. Что я хочу сделать, так это сделать диалоговое окно оповещения с тремя кнопками, появившееся после того, как пользователь нажмет на экран для получения дополнительной информации. чем 2 (секунды) Проблема, с которой я сталкиваюсь, состоит в том, что окно ALERTDIALOG не появляется на карте, когда я его инициирую .. Я не получаю никаких ошибок? так может кто-нибудь, пожалуйста, помогите мне.

Ниже мой код ....

    long start;
    long stop;

    //reference map from citymap.xml file
    map = (MapView) findViewById(R.id.mvMain);

    // Enable zoom features 
    map.setBuiltInZoomControls(false);

    //Declaring the instance Interaction 
    Interact t = new Interact();

    //declaring a list of overlays
    List<Overlay> overlayList = map.getOverlays();

    // interact t in to overlay list.
    overlayList.add(t);

    class Interact extends Overlay {    
        public boolean OnTouchEvent(MotionEvent e, MapView m){
        // initiating motion event action down
        if(e.getAction() == MotionEvent.ACTION_DOWN){
        // set start time
            start = e.getEventTime();

        }
        // Initiating motion event action up: when the user stops on touch event
        if(e.getAction() == MotionEvent.ACTION_UP){
            // set end time 
            stop = e.getEventTime();
        }
        // calculating the time to project an alert dialog 
        if (stop > 1500){
            Toast.makeText(CityMap.this, "toast meee", 50000).show();
            //perform an action, create alert dialog box
            AlertDialog.Builder builder = new AlertDialog.Builder(CityMap.this).create();
            builder.setTitle("Select an Option");
            builder.setCancelable(true);
            builder.setPositiveButton("Place pint Point", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub

                }
            });
builder.create();
            builder.show();
            return true;
        }
        return true;

Ответы [ 2 ]

0 голосов
/ 31 июля 2012

Для @Pepys: этот метод устарел. Вы должны использовать

alert.setPositiveButton("your text", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {...
}});
0 голосов
/ 16 апреля 2012

Я думаю, вы немного испортили последнее утверждение if. Попробуйте вернуть false во второй раз.

Проверьте мой:

if (stop - start > 1500) {
            // perform some action
            AlertDialog alert = new AlertDialog.Builder(Main.this).create();
            alert.setTitle("Pick an option");
            alert.setMessage("Pick an option dude!");

            alert.setButton("Place a pin",
                    new DialogInterface.OnClickListener() {

                        public void onClick(DialogInterface dialog,
                                int which) {
                            // TODO Auto-generated method stub

                        }
                    });

Надеюсь, это поможет;)

...