gpt4 book ai didi

android - 膨胀 listView onClick 返回 null

转载 作者:行者123 更新时间:2023-11-29 21:37:18 25 4
gpt4 key购买 nike

我有一个名为 MainActivity 的 Activity 。在 MainActivity 中有一个名为 Select 的按钮。单击 Select 时,应该会启动一个自定义对话框。自定义对话框又将 listView 作为子项。如果我在没有 listView 的情况下测试我的自定义对话框,它工作正常。但是对于 listView,膨胀后的 listView 始终为 null。如何修复 listView?

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ListView
android:id="@+id/item_listView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</LinearLayout>

Java

 LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.item_linear_listview, null);

Dialog listHolder =
(new Dialog(this, R.style.CustomDialog));
listHolder.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
listHolder.setContentView(dialoglayout);

listHolder.getWindow().setBackgroundDrawable(new ColorDrawable(0));

listHolder.show();


ListView listView = (ListView) findViewById(R.id.item_listView);
//check listView beyond here returns null

最佳答案

我现在可以看到你的问题了。您是在启动对话框的 Activity 上调用 findViewById(...),而不是在对话框本身上。

下面是一个如何正确创建自定义对话框,然后初始化其 View 的示例:

    // custom dialog
final Dialog dialog = new Dialog(getApplicationContext());
dialog.setContentView(R.layout.item_linear_listview); // your custom layout file
dialog.setTitle("Title...");

// set the custom dialog components - for example the list view
ListView list = (ListView) dialog.findViewById(R.id.item_listView);


dialog.show();

关于android - 膨胀 listView onClick 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com