当前位置: 首页 > 知识库问答 >
问题:

无法更改ListView项的文本颜色

吕子真
2023-03-14

在关于同一主题的其他帖子之后,我实现了数组适配器的getView方法。但不幸的是,由于突出显示的行,应用程序停止了,因为如果我将其注释掉,应用程序不会崩溃。请帮助出了什么问题:-

  aa = new ArrayAdapter(this,android.R.layout.simple_list_item_1, al) {
                @Override
     public View getView(int position, View convertView, ViewGroup parent) {
            View view = super.getView(position, convertView, parent);
           ***TextView tv = (TextView)findViewById(android.R.id.text1);***
            tv.setTextColor(Color.WHITE);
            tv.setVisibility(View.VISIBLE);

            return view;
        }

Logcat公司-

04-13 04:48:38.246 2870-2870/com。实例赛拉夫。附录3 E/AndroidRuntime﹕ 致命异常:主进程:com。实例赛拉夫。附录3,PID:2870 java。lang.NullPointerException:尝试调用虚拟方法“android”。看法查看android。看法看法findViewById(int)“”在com的空对象引用上。实例赛拉夫。附录3.MainActivity$1。android上的getView(MainActivity.java:41)。小装置。AbsListView。android上的获取视图(AbsListView.java:2344)。小装置。ListView。android上的makeAndAddView(ListView.java:1864)。小装置。ListView。android上的fillDown(ListView.java:698)。小装置。ListView。android上的fillFromTop(ListView.java:759)。小装置。ListView。android上的layoutChildren(ListView.java:1673)。小装置。AbsListView。android上的Onllayout(AbsListView.java:2148)。看法看法android上的布局(View.java:15596)。看法视图组。android上的布局(ViewGroup.java:4966)。小装置。绝对布局。android上的onLayout(AbsoluteLayout.java:123)。看法看法android上的布局(View.java:15596)。看法视图组。android上的布局(ViewGroup.java:4966)。小装置。框架布局。android上的layoutChildren(FrameLayout.java:573)。小装置。框架布局。android上的onLayout(FrameLayout.java:508)。看法看法android上的布局(View.java:15596)。看法视图组。com上的布局(ViewGroup.java:4966)。Android内部的小装置。操作BaroverlayLayout。android上的在线布局(ActionBarOverlayLayout.java:494)。看法看法android上的布局(View.java:15596)。看法视图组。android上的布局(ViewGroup.java:4966)。小装置。框架布局。android上的layoutChildren(FrameLayout.java:573)。小装置。框架布局。android上的onLayout(FrameLayout.java:508)。看法看法android上的布局(View.java:15596)。看法视图组。android上的布局(ViewGroup.java:4966)。看法ViewRootImpl。在android上执行布局(ViewRootImpl.java:2072)。看法ViewRootImpl。android上的performTraversals(ViewRootImpl.java:1829)。看法ViewRootImpl。android上的doTraversal(ViewRootImpl.java:1054)。看法ViewRootImpl$TraversalRunnable。在android上运行(ViewRootImpl.java:5779)。看法编舞$CallbackRecord。在android上运行(Choreographer.java:767)。看法编舞android上的doCallbacks(Choreographer.java:580)。看法编舞android上的doFrame(Choreographer.java:550)。看法Choreographer$FrameDisplayEventReceiver。在android上运行(Choreographer.java:753)。操作系统。处理程序。android上的handleCallback(Handler.java:739)。操作系统。处理程序。android上的dispatchMessage(Handler.java:95)。操作系统。活套。android上的loop(Looper.java:135)。应用程序。活动线程。java上的main(ActivityThread.java:5221)。郎。反思。方法在java中调用(本机方法)。郎。反思。方法在com上调用(Method.java:372)。Android内部的操作系统。ZygoteInit$MethodandArgscaler。在com上运行(ZygoteInit.java:899)。Android内部的操作系统。合子岩。main(ZygoteInit.java:694)

需要做什么?尝试调用虚拟方法的android。看法查看android。看法看法空对象引用上的findViewById(int)'

共有3个答案

吕俊美
2023-03-14

试试这个,

   aa = new ArrayAdapter(this,android.R.layout.simple_list_item_1, al) {
                    @Override
         public View getView(int position, View convertView, ViewGroup parent) {
                View view = super.getView(position, convertView, parent);
               ***TextView tv = (TextView)findViewById(android.R.id.text1);***
                tv.setTextColor(getResources.getColor(Color.WHITE));
                tv.setVisibility(View.VISIBLE);

                return view;
            }
柯鸿振
2023-03-14

您应该在传递到getView的视图上调用findViewById。

改变

TextView tv = (TextView)findViewById(android.R.id.text1);

TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
扶珂
2023-03-14

当您的convertView为空时,您需要加载一个新视图。

技巧:

aa = new ArrayAdapter(this,android.R.layout.simple_list_item_1, al) {
                    @Override
         public View getView(int position, View convertView, ViewGroup parent) {
                if (convertView == null) {
                    convertView = LayoutInflater.from(context).inflate(
                        R.layout.fragment_home_drawer_listview_item, null);
                }
                TextView tv = (TextView)convertView.findViewById(android.R.id.text1);
                tv.setTextColor(getResources.getColor(Color.WHITE));
                tv.setVisibility(View.VISIBLE);
                return convertView;
            }
 类似资料:
  • 我一直试图改变我的时间选择器的文本颜色。但是我找不到父样式的位置。我两个都试过了 和 我的是15。我的是20。我已经重建并清理了我的项目 我想我已经解决了所有类似的问题,但没有一个真正为我提供了解决方案。唯一可行的答案是使用某种库,但我不太喜欢这种解决方案。到父级的路径是否与我正在使用的路径有所不同,因为我非常确定我应该能够以某种方式访问它? 编辑 这是主题的应用方式; 请注意,这是我收到的错误(

  • 问题内容: 我想更改与数组索引匹配的UITextView中特定文本的文本颜色。我能够略微修改此答案,但不幸的是,每个匹配短语的文本颜色仅更改了一次。 问题答案: 抱歉,我刚注意到您的消息。这是一个工作示例(在操场上测试):

  • 我正在做我的项目,在某个阶段,我需要更改某些单词的颜色(在本例中是Hashtags)。 控制器中有以下代码: (请注意,“resultado”是一个有效字符串,可以毫无问题地获取推文) 我使用listaPropia从原始列表中获取所需内容 此时,我应该有完整的项目列表,“textoAManipular”字段应该有一个从class=“elem1”到class=“elem5”的标记 现在,在视图中:

  • 问题内容: 我正在尝试将第一个选项的颜色更改为灰色,即只有文本(选择一个选项),但是在这里无法正常工作: 问题答案: Suresh,您不需要在代码中使用任何内容。您需要的是这样的东西: 但是正如您所看到的,因为选项中的第一项是选择控件显示的第一件事,所以您看不到其分配的颜色。如果您打开选择列表并看到已打开的项目,则会看到可以为第一个选项分配灰色。因此,您需要jQuery中的其他功能。

  • 问题内容: 我正在编写一个简单的扫雷游戏,现在可以运行,但是我正在处理一些漂亮的细节,例如使每个数字使用不同的颜色。 尝试在上设置文本颜色时,我总是遇到错误。我可以很容易地更改文本和背景,但是不能专门更改文本颜色。 导致一切混乱的部分是: 由于某种原因,我的错误是: 每当我尝试编译时都会发生这种情况,但是当我将其更改为说而不是正常工作时,就会发生这种情况。 问题答案: 对于JButton未定义。要

  • 问题内容: 我制作了一个使用 ActionBarCompat* 的应用程序 * 我使用 SlidingTabLayout 类创建了选项卡。 该类是这样的: SlidingTabLayout.java 但我无法更改标签的颜色… 我的viewpager片段是这样的: 该应用程序运行良好,但我无法更改标签的 颜色文本 … 看到以下示例后,我制作了该应用程序: rudsonlive /导航抽屉-ViewP