代码之家  ›  专栏  ›  技术社区  ›  Gumgo

AlertDialog setContentView接管屏幕

  •  2
  • Gumgo  · 技术社区  · 14 年前

    也许我在这里遗漏了一些明显的东西,但是我很难为AlertDialog的主体设置一个自定义视图。下面是设置自定义视图的步骤:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(View.inflate(getContext(), R.layout.dialog_body, null));
    }
    

    视图不是设置AlertDialog主体的内容,而是放置在整个屏幕上。如何获取视图来替换AlertDialog消息体?

    1 回复  |  直到 14 年前
        1
  •  1
  •   smith324    14 年前

    通过调用 setContentView 所以它占据了整个屏幕。你也在做这件事 onCreate 我假设的方法是活动,你需要在 onCreateDialog 方法。

    这里有一个链接到 docs 举个例子。

    public Dialog onCreateDialog(int id) {
    
                Dialog dialog = null;
                AlertDialog.Builder builder = new AlertDialog.Builder(app);
                AlertDialog alert = null;
    
                builder.setTitle("A title") 
                       .setCancelable(true)
                       .setView(myView);
                    alert = builder.create();
                    return alert;
    
    }