貌似是用来标示什么的,高手帮忙解释下

解决方案 »

  1.   

    id
    是和oncreatedialog 方法中的id对应的
      

  2.   

    showDialog(int id),其中的id是指的Dilaog的id,和你用其他TextView等控件一样的。
    指的是你指定的dialog的id.
      

  3.   

    我现在碰到的的问题是  我在Activity中调用showDialog(),传入的是onCreateDialog() 方法中的对应的ID但是依旧会弹出错误,难道要在其他地方把这个ID注册吗?具体的代码如下,希望各位帮我看看还有哪里,这个问题纠结我两天了,实在太痛苦
    package sgtmav.test.dialog;import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;public class fifthandroidproject extends Activity {
    private static final int ALERT_DIALOG_ID = 1000;
    private Button button;

    /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            button=(Button)findViewById(R.id.button1);
            button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    fifthandroidproject.this.showDialog(ALERT_DIALOG_ID);
    }
    });
              
        } @Override
    protected Dialog onCreateDialog(int id) {
    // TODO Auto-generated method stub
    final String[] cities={"Beijing","Shanghai","Nanchang"};
    AlertDialog dialog;
    switch (id) {
    case ALERT_DIALOG_ID:
    AlertDialog.Builder dialogbuilder =new AlertDialog.Builder(getApplicationContext());
    dialogbuilder.setTitle("AlertDialog");
    dialogbuilder.setItems(cities, new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    Toast.makeText(getApplicationContext(), cities[which], Toast.LENGTH_SHORT).show();
    }
    });
    dialog =dialogbuilder.create();
    break; default:
    dialog=null;
    break;
    }
    return dialog;
    }
       
    }
      

  4.   

    AlertDialogSamples   apidemos 看里面的例子
      

  5.   

    这个ID主要是标示不同的dialog,比如你想要创建两个不同的dialog,A,B,你调用showDialog(id) 传人一个标示(可以无意义的ID,1,2,3,4) 其会调用onCreateDialog(id) 根据这个ID 创建你想要的dialog就好了,if(id==1)
    {
        return dialogbuilder.create();
    }else if(id==2)
    {
       return dialogbuilder.create();}
      

  6.   


    代码好似没问题啊,你把错误log贴出来看看呢
      

  7.   

    AlertDialog.Builder dialogbuilder =new AlertDialog.Builder(getApplicationContext());把getApplicationContext()换成fifthandroidproject.this 应该能好使,我试过了。
      

  8.   

    @LZ 我遇到跟你同样的问题
    同id的showDialog(id)调用同id的onCreateDialog()
    看了11楼得做法,做了修改,还是不行 
    最后直接在onClick中显示的调用onCreateDialog()才行
    不知道是什么原因。