Android 更改listview项的textcolor时出现NullPointerException

Android 更改listview项的textcolor时出现NullPointerException,android,listview,nullpointerexception,Android,Listview,Nullpointerexception,重写getView方法以更改列表项的textcolor- 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, conv

重写getView方法以更改列表项的textcolor-

 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)convertView.findViewById(android.R.id.text1);
            tv.setTextColor(Color.WHITE);
            tv.setVisibility(View.VISIBLE);
            return view;
        }
    } ;
日志:

-Process: com.example.sairav.app3, PID: 1470
    ***java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
            at com.example.sairav.app3.MainActivity$1.getView(MainActivity.java:38)***
            at android.widget.AbsListView.obtainView(AbsListView.java:2344)
            at android.widget.ListView.makeAndAddView(ListView.java:1864)
            at android.widget.ListView.fillDown(ListView.java:698)
            at android.widget.ListView.fillFromTop(ListView.java:759)
            at android.widget.ListView.layoutChildren(ListView.java:1673)
            at android.widget.AbsListView.onLayout(AbsListView.java:2148)
            at android.view.View.layout(View.java:15596)
            at android.view.ViewGroup.layout(ViewGroup.java:4966)
            at android.widget.AbsoluteLayout.onLayout(AbsoluteLayout.java:123)
            at android.view.View.layout(View.java:15596)
            at android.view.ViewGroup.layout(ViewGroup.java:4966)
            at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)
            at android.widget.FrameLayout.onLayout(FrameLayout.java:508)
            at android.view.View.layout(View.java:15596)
            at android.view.ViewGroup.layout(ViewGroup.java:4966)

第一次调用getView时,convertView为null。调用super并将其返回值赋给view,会使convertView未初始化,从而导致崩溃

 convertView = super.getView(position, convertView, parent);
 TextView tv = (TextView)convertView.findViewById(android.R.id.text1);
 tv.setTextColor(Color.WHITE);
 tv.setVisibility(View.VISIBLE);
 return convertView;
编辑:

android.R.layout.simple\u list\u item\u 1
只包含一个
TextView
,因此要使用findViewById,您可以强制转换
super.getView
的返回值

convertView = super.getView(position, convertView, parent);
((TextView)convertView).setTextColor(Color.WHITE);
((TextView)convertView).setVisibility(View.VISIBLE);
 return convertView;
//使用视图而不是convertview

       TextView tv = (TextView)view.findViewById(android.R.id.text1);
        tv.setTextColor(Color.WHITE);
        tv.setVisibility(View.VISIBLE);
        return view;
    }
} ;
       TextView tv = (TextView)view.findViewById(android.R.id.text1);
        tv.setTextColor(Color.WHITE);
        tv.setVisibility(View.VISIBLE);
        return view;
    }
} ;