Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 ViewHolder模式-列表视图-项目';s的背景色不为';我没把它摆好_Android_Android Listview - Fatal编程技术网

Android ViewHolder模式-列表视图-项目';s的背景色不为';我没把它摆好

Android ViewHolder模式-列表视图-项目';s的背景色不为';我没把它摆好,android,android-listview,Android,Android Listview,我有一个带有自定义适配器的listview。listview中唯一的项目是TextView(目前)。当我点击文本视图时,背景颜色应变为蓝色,当我再次点击时,背景颜色应变为默认颜色(浅灰色)。我尝试使用ViewHolder模式来实现这一点 现在的问题是,当我点击列表中的第一个项目时,一些随机项目的背景颜色变为蓝色 CustomAdapter类: public class ResultsAdapter extends BaseAdapter { ViewHolder holder;

我有一个带有自定义适配器的listview。listview中唯一的项目是TextView(目前)。当我点击文本视图时,背景颜色应变为蓝色,当我再次点击时,背景颜色应变为默认颜色(浅灰色)。我尝试使用ViewHolder模式来实现这一点

现在的问题是,当我点击列表中的第一个项目时,一些随机项目的背景颜色变为蓝色

CustomAdapter类:

public class ResultsAdapter extends BaseAdapter {

    ViewHolder holder;

    @Override
    public int getCount() {
        return dummyText.length;
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = getActivity().getLayoutInflater().inflate(
                    R.layout.item_mtf_results, parent, false);

            holder = new ViewHolder();
            holder.txtViewResults = (TextView) convertView
                    .findViewById(R.id.textview_item_mtf_results);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.txtViewResults.setText(dummyText[position]);

        holder.txtViewResults.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                Log.d(Const.DEBUG, "in onClick Method");
                Log.d(Const.DEBUG, "Is checked ? = " + holder.isChecked);

                String result = holder.txtViewResults.getText().toString();
                listener.onResultClick(result);

                if (holder.isChecked) {

                    Log.d(Const.DEBUG, "isChecked = true");

                    holder.txtViewResults.setBackgroundColor(getResources()
                            .getColor(R.color.light_grey));
                    holder.txtViewResults.setTextColor(getResources()
                            .getColor(R.color.black));
                    holder.isChecked = false;

                    Log.d(Const.DEBUG,
                            "Holder is set to false..  checked ? = "
                                    + holder.isChecked);

                } else {

                    Log.d(Const.DEBUG, "isChecked = false");

                    holder.txtViewResults.setBackgroundColor(getResources()
                            .getColor(R.color.blue));
                    holder.txtViewResults.setTextColor(getResources()
                            .getColor(R.color.white));
                    holder.isChecked = true;

                    Log.d(Const.DEBUG,
                            "Holder is set to true..  checked ? = "
                                    + holder.isChecked);
                }

            }
        });

        return convertView;
    }

}
持证人类别:

public static class ViewHolder {
    TextView txtViewResults;
    boolean isChecked = false;
}

如果您需要任何其他代码,请告诉我…

尝试在
converview==null
块中添加文本视图的clickListenr。每次滚动listview时都会设置Listners

你为什么需要一个登记卡?查看是否可以将布尔值设置为textview的标记。