【问题标题】:RequestFeature must be called before adding content, unsure why it's being called必须在添加内容之前调用 RequestFeature,不确定为什么要调用它
【发布时间】:2012-11-27 09:02:14
【问题描述】:

我目前正在尝试弹出一个 AlertDialog 框,其中包含有关具有自定义布局文件“details.xml”的电影的信息我觉得这可能是我在 AlertDialog 方面填充这些字段的方式,但我不确定如何最好地处理它。

listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> Parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub
            Movie mTemp = movieArray.get(position);             
            //Intent intent = new Intent(getApplicationContext(), SingleItemList.class);

            AlertDialog.Builder builder = new AlertDialog.Builder(MovieList.this);
            builder.setView(getLayoutInflater().inflate(R.layout.details, null));
            builder.setTitle("Details");
            builder.setNeutralButton("Post to Facebook", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // User clicked OK button
                }
            });
            AlertDialog d = builder.create();
            if (mTemp != null) {
                ImageView image = (ImageView) d.findViewById(R.id.detailIcon);
                TextView title = (TextView) d.findViewById(R.id.detailTitle);
                TextView year = (TextView) d.findViewById(R.id.detailYear);
                TextView rating = (TextView) d.findViewById(R.id.detailRating);
                TextView director = (TextView) d.findViewById(R.id.detailDirector);

                if (title != null) {
                    title.setText("Name: " + mTemp.title);
                }

                if(year != null) {
                    year.setText("Year: " + mTemp.year);
                }

                if(rating != null) {
                    rating.setText("Rating: " + mTemp.rating + "/10");
                }

                if(director != null) {
                    director.setText("Director: " + mTemp.director);
                }

                if(image != null) {
                    image.setImageBitmap(getBitmap(mTemp.coverURL));
                }
            }

            d.show();

            /*
            Dialog dialog = new Dialog(MovieList.this);
            dialog.setTitle("Details");
            dialog.setContentView(R.layout.details);


            dialog.show();*/
        }
});

【问题讨论】:

  • 你的代码在哪里调用 requestFeature?
  • 我从来没有调用过它,当我开始添加 AlertDialog 后,错误才开始出现
  • 那你怎么确定它被调用了? android底层系统可能会调用某些方法,因为android就是这样工作的。对话框需要请求一个没有标题的窗口。请在您的问题中详细说明,它非常模糊。你想处理什么?你的实际问题是什么?

标签: android onclicklistener


【解决方案1】:

您尚未发布您的 LogCat 错误,但我认为是您的 (mTemp != null) 块引起了麻烦。更改膨胀的视图,然后将其传递给setView()

View view = getLayoutInflater().inflate(R.layout.details, null);
if (mTemp != null) {
    ImageView image = (ImageView) view.findViewById(R.id.detailIcon);
    TextView title = (TextView) view.findViewById(R.id.detailTitle);
    ...
}

AlertDialog.Builder builder = new AlertDialog.Builder(MovieList.this);
builder.setTitle("Details");
builder.setView(view);
builder.setNeutralButton("Post to Facebook", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                // User clicked OK button
            }
        });

AlertDialog d = builder.create();
d.show();

【讨论】:

  • 那一定是它,因为它现在已经修复了。谢谢!
猜你喜欢
  • 2011-05-14
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多