gpt4 book ai didi

Android 对话框 Root View

转载 作者:行者123 更新时间:2023-11-30 03:53:04 25 4
gpt4 key购买 nike

我在 Android 中有一个对话框,我使用这个文件作为布局:

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


</ListView>

在 Activity 中,我需要向这个 ListView 添加一个适配器,我有这个:

@Override
protected Dialog onCreateDialog(int id) {
switch(id){
case ADDPLAYERDIALOG:{
Dialog d = new Dialog(this);
d.setContentView(R.layout.training_dialog);
ListView lv = (ListView) d.getCurrentFocus().getRootView();
ListAdapter adapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, createNamesList());
lv.setAdapter(adapter);

return d;
}
}
return super.onCreateDialog(id);
}

我在这里得到一个 NullPointerException:

 ListView lv = (ListView) d.getCurrentFocus().getRootView();

我没有这个 ListView 小部件的 ID,因为它是一个布局 XML 文件,我不能只写 lv = d.findViewById(R.id.listview);

我该如何解决这个问题?

最佳答案

你可以很容易地通过xml设置一个id。您使用 android:id 标签。

您的 ListView 节点应如下所示:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id = "@+id/listview">
</ListView>

现在您的 lv = d.findViewById(R.id.listview); 应该可以工作了。

关于Android 对话框 Root View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13829357/

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