Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 根据项目中的TextView更改ListView行颜色_Android_Listview_Colors_Row_Simpleadapter - Fatal编程技术网

Android 根据项目中的TextView更改ListView行颜色

Android 根据项目中的TextView更改ListView行颜色,android,listview,colors,row,simpleadapter,Android,Listview,Colors,Row,Simpleadapter,各位晚上好, 制作一个简单的预算应用程序,当它是一个成本时需要一个红色背景,当它是一个收入时需要一个绿色背景。让listview正常工作,现在只需深入研究颜色。已经想出了改变行颜色点击,但现在有一个“初始”的行颜色。(这是我的第一个应用程序,至今仍在学习中) 我已尝试-自定义SimpleAdapter包装器: public class RC_Adapter extends SimpleAdapter { Context contextpass; public RC_Adapter(Contex

各位晚上好,

制作一个简单的预算应用程序,当它是一个成本时需要一个红色背景,当它是一个收入时需要一个绿色背景。让listview正常工作,现在只需深入研究颜色。已经想出了改变行颜色点击,但现在有一个“初始”的行颜色。(这是我的第一个应用程序,至今仍在学习中)

我已尝试-自定义SimpleAdapter包装器:

public class RC_Adapter extends SimpleAdapter {
Context contextpass;

public RC_Adapter(Context context, List<? extends Map<String, ?>> data,
        int resource, String[] from, int[] to) {
    super(context, data, resource, from, to);
    contextpass = context;
    // TODO Auto-generated constructor stub
}
@Override
public View getView(int position,View convertView,ViewGroup parent){
    TextView tv = (TextView) convertView.findViewById(R.id.c1);
    String s = tv.getText().toString();
    if(s.equals("Cost")){
        convertView.setBackgroundResource(R.color.valencia_red);}
    else{
        convertView.setBackgroundResource(R.color.t_green);
    }
    return convertView; 
}
}
我也尝试过:

SimpleAdapter.ViewBinder binder = new SimpleAdapter.ViewBinder() {

        @Override
        public boolean setViewValue(View view, Object data,
                String textRepresentation) {
            // TODO Auto-generated method stub
            TextView tv = (TextView) view.findViewById(R.id.c1);
            String s = tv.getText().toString();
            if(s.equals("Cost")){
                view.setBackgroundResource(R.color.valencia_red);}
            else{
                view.setBackgroundResource(R.color.t_green);
            }
            return false;
        }
    };
    sd.setViewBinder(binder);
只要我调用启动更改后的SimpleAdapter的函数,它们都会使程序崩溃。我没有试着同时给两个人打电话。我试过扩展课程,然后又试过活页夹。代码中有明显的错误吗?我一直在尝试适应多种不同的东西,以使其发挥作用(例如)


谢谢你的帮助!总是很感激

不用看日志,我可以假设您得到了一个
NullPointerException
convertView
将为空,因为您需要首先通过调用
super.getView
来创建视图。获得视图后(让父视图充气或转换),可以对其进行更改

@Override
public View getView(int position,View convertView,ViewGroup parent){
    View view = super.getView(position, convertView, parent);
    TextView tv = (TextView) view.findViewById(R.id.c1);
    // TODO: Add null checks
    String s = tv.getText().toString();
    if(s.equals("Cost")){
        view.setBackgroundResource(R.color.valencia_red);}
    else{
        view.setBackgroundResource(R.color.t_green);
    }
    return view; 
}

不看日志,我可以假设您得到的是
NullPointerException
convertView
将为空,因为您需要首先通过调用
super.getView
来创建视图。获得视图后(让父视图充气或转换),可以对其进行更改

@Override
public View getView(int position,View convertView,ViewGroup parent){
    View view = super.getView(position, convertView, parent);
    TextView tv = (TextView) view.findViewById(R.id.c1);
    // TODO: Add null checks
    String s = tv.getText().toString();
    if(s.equals("Cost")){
        view.setBackgroundResource(R.color.valencia_red);}
    else{
        view.setBackgroundResource(R.color.t_green);
    }
    return view; 
}

坠机日志怎么说?请提供堆栈跟踪。第一个错误(但在之后继续)是4 Span_Exclusive_-Span的长度不能为零)。然后是致命的异常:main、java.lang.NullPointerException,然后是大量的at…错误。NullPointerException下面的一个位于com.example.simplebudget.RC_Adapter.getView(RC_Adapter.java:28)崩溃日志说了什么?请提供堆栈跟踪。第一个错误(但在之后继续)是4 Span_Exclusive_-Span的长度不能为零)。然后是致命的异常:main、java.lang.NullPointerException,然后是大量的at…错误。就在NullPointerException下面的是com.example.simplebudget.RC_Adapter.getView(RC_Adapter.java:28)。我得到的第一个错误是致命异常:main,然后是NullPointerException(然后它列出了所有未触发的错误)。我用视图尝试了你的修改,但是我仍然得到了同样的错误。跨度错误你可以忽略。现在只关心例外情况。你能发布你的布局和nullpointerexception堆栈跟踪吗?listview的布局是:是的,试图回答我自己的问题,所以原来的没有那么长。一旦好了,会把所有的垃圾都编辑出来,然后给一个简洁的答案。谢谢你的帮助,我刚刚一行一行地浏览了代码。我忘了改变挫折的背景。。。查看而不是转换视图。一切都很顺利!谢谢你的帮助。试图升级投票但不让我…我得到的第一个错误是致命的异常:main,然后是NullPointerException(然后它列出了所有未触发的内容)。我用视图尝试了你的修改,但是我仍然得到了同样的错误。跨度错误你可以忽略。现在只关心例外情况。你能发布你的布局和nullpointerexception堆栈跟踪吗?listview的布局是:是的,试图回答我自己的问题,所以原来的没有那么长。一旦好了,会把所有的垃圾都编辑出来,然后给一个简洁的答案。谢谢你的帮助,我刚刚一行一行地浏览了代码。我忘了改变挫折的背景。。。查看而不是转换视图。一切都很顺利!谢谢你的帮助。试图提高投票率但不让我。。。