Java Android AlertDialog不显示适配器名称

Java Android AlertDialog不显示适配器名称,java,android,android-arrayadapter,android-alertdialog,Java,Android,Android Arrayadapter,Android Alertdialog,我制作了一个AllertDialog,它应该显示一个应用程序列表,当我单击其中一个alerdialog成员时,它会从ArrayAdapter返回正确的字符串 这是它的样子 在我的主要活动的onCreate方法中就是这样调用的 有人建议我的getInstallableApps()可能返回空值, 但是,如果您仔细检查代码,这是不可能的。因为如果它们是空的,它甚至不会有任何适配器成员 无论哪种方式,我都添加了一些测试值,仍然要做完全相同的事情: final ArrayAdapter&

我制作了一个AllertDialog,它应该显示一个应用程序列表,当我单击其中一个alerdialog成员时,它会从ArrayAdapter返回正确的字符串

这是它的样子

在我的主要活动的
onCreate
方法中就是这样调用的

有人建议我的
getInstallableApps()
可能返回空值, 但是,如果您仔细检查代码,这是不可能的。因为如果它们是空的,它甚至不会有任何适配器成员

无论哪种方式,我都添加了一些测试值,仍然要做完全相同的事情:

        final ArrayAdapter<String> app_list = new ArrayAdapter<String>(main_activity, R.layout.simple_list_item_single_choice);
        final ArrayList<String> app_name_list = getInstallableApps();

//      app_list.addAll(app_name_list);

        app_list.add("TEST");
        app_list.add("TEST2");
final ArrayAdapter app\u list=新的ArrayAdapter(主活动,R.layout.simple\u list\u项目\u单选);
最终ArrayList app_name_list=getInstallableApps();
//app_list.addAll(app_name_list);
附件清单。添加(“测试”);
附录列表添加(“测试2”);
代码的其余部分保持不变

更新2:


当我触摸其中一个成员时,它会在短时间内显示他们的名字,或者当我按住它时,它会在我按住它的时间内显示他们的名字。

调试
getInstallableApps()
方法,您会看到它正在输入
for
语句,因为
中有两个元素。remoteAppDetails
,但是在内部,您从中获取数据的元素是否调用不正确或为空(
remote\u app\u info
local\u app\u info
),或者文件名字段为空。一旦您找到了将空值放入数组的内容,您就可以修复它。

调试
getInstallableApps()
方法,您将看到它正在输入
for
语句,因为
中有两个元素。remoteAppDetails
,但在其中,您从中获取数据的元素调用不正确还是为空(
remote\u-app\u-info
local\u-app\u-info
),或者文件名字段为空。一旦找到数组中放置空值的内容,您就可以对其进行修复。

因此,我最终强制使用颜色来修复此问题,因为自定义布局非常麻烦

        app_list = new ArrayAdapter<String>(main_activity, R.layout.simple_list_item_single_choice){
            public View getView(int position, View convertView, android.view.ViewGroup parent) {
                TextView textView = (TextView) super.getView(position, convertView, parent);

                textView.setTextColor(Color.BLACK);

                return textView;
                }
        };
app\u list=new ArrayAdapter(主\u活动,右布局。简单\u列表\u项目\u单选){
公共视图getView(int位置,视图转换视图,android.View.ViewGroup父级){
TextView TextView=(TextView)super.getView(position,convertView,parent);
textView.setTextColor(Color.BLACK);
返回文本视图;
}
};

当您认为它不显示适配器名称时,请按住其中一个成员,查看它是否显示的是成员名称,如果它显示的是成员名称,您是否知道您遇到了字体问题。

因此,我只是强制使用颜色来修复此问题,因为自定义布局为此带来了很多麻烦

        app_list = new ArrayAdapter<String>(main_activity, R.layout.simple_list_item_single_choice){
            public View getView(int position, View convertView, android.view.ViewGroup parent) {
                TextView textView = (TextView) super.getView(position, convertView, parent);

                textView.setTextColor(Color.BLACK);

                return textView;
                }
        };
app\u list=new ArrayAdapter(主\u活动,右布局。简单\u列表\u项目\u单选){
公共视图getView(int位置,视图转换视图,android.View.ViewGroup父级){
TextView TextView=(TextView)super.getView(position,convertView,parent);
textView.setTextColor(Color.BLACK);
返回文本视图;
}
};

当您认为它不显示适配器名称时,请按住其中一个成员,查看它是否显示的是成员名称,如果您知道自己有字体问题,以供将来参考。

如何调用该类?代码中还有对init()的调用在构造函数中被注释掉。在你的工作应用程序中,我希望它没有被注释。我基本上在我的主要活动中将这个类初始化为
app_list=new AppList(this);
onCreate()
方法中,我这样打开它。
app_list.init()app_list.show()
@Deb检查我的更新,你会发现这不是问题,可能是一些主题问题。@RajenRaiyarela你需要我提供什么样的信息才能知道是否是这样?你如何调用这个类?代码中还有对init()的调用在构造函数中被注释掉。在你的工作应用程序中,我希望它没有被注释。我基本上在我的主要活动中将这个类初始化为
app_list=new AppList(this);
onCreate()
方法中,我这样打开它。
app_list.init()app_list.show()
@Deb检查我的更新,你会发现这不是问题,可能是一些主题问题。@RajenRaiyarela你需要我提供什么样的信息才能知道情况是否如此?
Log.i(“DIALOG SELECTED”,app_list.getItem(which));
onClick(DialogInterface DIALOG,int which)中
它记录了正确的值,该值也应该显示,这意味着该值不是空的。但它没有显示这些值。我只是添加了额外的信息以表明情况并非如此。在调用.init()和.show()之后,您是否设置了任何setContentView()?
Log.I(“选中对话框”,app_list.getItem(哪个))
onClick(DialogInterface dialog,int which)
中,它记录了正确的值,它也应该显示,这意味着值不是空的。但是它没有显示它们。我只是添加了额外的信息来说明情况并非如此。在调用.init()和.show()之后,您是否设置了ContentView()?
        app_list = new ArrayAdapter<String>(main_activity, R.layout.simple_list_item_single_choice){
            public View getView(int position, View convertView, android.view.ViewGroup parent) {
                TextView textView = (TextView) super.getView(position, convertView, parent);

                textView.setTextColor(Color.BLACK);

                return textView;
                }
        };