Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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
Java 在listview中滚动时,选择会消失,并伴有奇怪的行为_Java_Android_Listview_Android Arrayadapter - Fatal编程技术网

Java 在listview中滚动时,选择会消失,并伴有奇怪的行为

Java 在listview中滚动时,选择会消失,并伴有奇怪的行为,java,android,listview,android-arrayadapter,Java,Android,Listview,Android Arrayadapter,我的listview遇到了一些奇怪的问题。我使用listview创建了一个列表,并使用一个自定义适配器显示带有文本字段和多个图像的行。我相信我的那部分工作得很好。我还将两个按钮放在listview的底部,以便选择行并使用这两个按钮修改它们。我通过简单地更改背景颜色,然后设置一个布尔标志来实现高亮显示,该标志是每行的一部分,这样我就可以知道高亮显示了哪些行。现在我遇到两个问题。第一种情况是,如果我选择一行,然后滚动,使该行在屏幕之外,那么该行将不突出显示,这是不好的。我只希望在用户再次单击某行或发

我的listview遇到了一些奇怪的问题。我使用listview创建了一个列表,并使用一个自定义适配器显示带有文本字段和多个图像的行。我相信我的那部分工作得很好。我还将两个按钮放在listview的底部,以便选择行并使用这两个按钮修改它们。我通过简单地更改背景颜色,然后设置一个布尔标志来实现高亮显示,该标志是每行的一部分,这样我就可以知道高亮显示了哪些行。现在我遇到两个问题。第一种情况是,如果我选择一行,然后滚动,使该行在屏幕之外,那么该行将不突出显示,这是不好的。我只希望在用户再次单击某行或发出命令时,该行不高亮显示。第二个问题是,一旦适配器被更新或一行移出视图,如果您尝试单击一行,它将立即取消高亮显示;这种情况只发生一次。之后,您可以单击该行,它将保持高亮显示。我将非常感谢您的帮助。 问候

HelmetList.java

public class HelmetList
{
    public HelmetList (String name, String address, String img_hel, String img_rec, String img_bat,
                            String img_dsk, String img_str, Boolean selected)
    {
        super();
        this.name       = name;
        this.address    = address;
        this.img_hel    = img_hel;
        this.img_rec    = img_rec;
        this.img_bat    = img_bat;
        this.img_dsk    = img_dsk;
        this.img_str    = img_str;
        this.selected   = selected;
    }

    private String name;
    private String address;
    private String img_hel;
    private String img_rec;
    private String img_bat;
    private String img_dsk;
    private String img_str;
    private Boolean selected;

    public String getName ()
    {
        return name;
    }

    public void setName (String s_name)
    {
        this.name = s_name;
    }

    public String getAddress ()
    {
        return address;
    }

    public void setAddress (String s_address)
    {
        this.address = s_address;
    }

    public String getImgHel ()
    {
        return img_hel;
    }

    public void setImgHel (String s_img_hel)
    {
        this.img_hel = s_img_hel;
    }

    public String getImgRec ()
    {
        return img_rec;
    }

    public void setImgRec (String s_img_rec)
    {
        this.img_rec = s_img_rec;
    }

    public String getImgBat ()
    {
        return img_bat;
    }

    public void setImgBat (String s_img_bat)
    {
        this.img_bat = s_img_bat;
    }

    public String getImgDsk ()
    {
        return img_dsk;
    }

    public void setImgDsk (String s_img_dsk)
    {
        this.img_dsk = s_img_dsk;
    }

    public String getImgStr ()
    {
        return img_str;
    }

    public void setImgStr (String s_img_str)
    {
        this.img_str = s_img_str;
    }

    public Boolean getSelected ()
    {
        return selected;
    }

    public void setSelected (Boolean s_selected)
    {
        this.selected = s_selected;
    }
}
public class HelmetListAdapter extends ArrayAdapter<HelmetList>
{
    private int resource;
    private LayoutInflater inflater;
    private Context context;

    public HelmetListAdapter (Context p_context, int p_resource, List<HelmetList> p_objects)
    {
        super (p_context, p_resource, p_objects);
        resource = p_resource;
        inflater = LayoutInflater.from (p_context);
        context = p_context;
    }

    @Override
    public View getView (int position, View convertView, ViewGroup parent)
    {
        convertView = ( RelativeLayout ) inflater.inflate( resource, null );
        HelmetList Helmet = getItem (position);

        TextView hname = (TextView) convertView.findViewById(R.id.h_name);
        hname.setText(Helmet.getName ());

        TextView haddress = (TextView) convertView.findViewById(R.id.h_address);
        haddress.setText(Helmet.getAddress ());

        ImageView himage = (ImageView) convertView.findViewById(R.id.h_image);
        String uri = "drawable/" + Helmet.getImgHel();
        int imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        Drawable image = context.getResources().getDrawable(imageResource);
        himage.setImageDrawable(image);

        ImageView hrec = (ImageView) convertView.findViewById(R.id.h_rec);
        uri = "drawable/" + Helmet.getImgRec();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hrec.setImageDrawable(image);

        ImageView hlbat = (ImageView) convertView.findViewById(R.id.h_lb);
        uri = "drawable/" + Helmet.getImgBat();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hlbat.setImageDrawable(image);

        ImageView hldsk = (ImageView) convertView.findViewById(R.id.h_ld);
        uri = "drawable/" + Helmet.getImgDsk();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hldsk.setImageDrawable(image);

        ImageView hstr = (ImageView) convertView.findViewById(R.id.h_str);
        uri = "drawable/" + Helmet.getImgStr();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hstr.setImageDrawable(image);

        return convertView;

    }
}
public class MainActivity extends Activity
{
    private ListView lvhelmets;
    private HelmetListAdapter adhelmets;
    private Context ctx;
    List<Integer> selected;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ctx = this;

        List<HelmetList> helmetlist = new ArrayList<HelmetList>();
        helmetlist.add(new HelmetList("Bell", "11111", "helmetpic0", "rec",
                "bat", "mm", "str", Boolean.FALSE));
        helmetlist.add(new HelmetList("Shoei", "33333", "helmetpic1", "rec",
                                        "bat", "mm", "str", Boolean.FALSE));
        helmetlist.add(new HelmetList("Harley Davidson", "55555", "helmetpic2", "rec",
                                        "bat", "mm", "str", Boolean.FALSE));
        helmetlist.add(new HelmetList("Joe Rocket", "77777", "helmetpic3", "rec",
                "bat", "mm", "str", Boolean.FALSE));


        lvhelmets = (ListView) findViewById(R.id.Helmet_list);
        lvhelmets.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);

        adhelmets = new HelmetListAdapter(ctx, R.layout.row_format, helmetlist);
        lvhelmets.setAdapter (adhelmets);

        Button price = (Button) findViewById(R.id.bPrice);
        Button safety = (Button) findViewById(R.id.bSafety);

        price.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                lvhelmets.setAdapter(adhelmets);
                int count = lvhelmets.getCount();
                for (int i = 0; i < count; i++)
                {
                    HelmetList helmet = (HelmetList) lvhelmets.getItemAtPosition(i);
                    helmet.setSelected(Boolean.FALSE);
                }
                adhelmets.notifyDataSetChanged();
            }
        });

        safety.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                lvhelmets.setAdapter(adhelmets);
                int count = lvhelmets.getCount();
                for (int i = 0; i < count; i++)
                {
                    HelmetList helmet = (HelmetList) lvhelmets.getItemAtPosition(i);
                    helmet.setSelected(Boolean.FALSE);
                }
                adhelmets.notifyDataSetChanged();
            }
        });



        lvhelmets.setOnItemClickListener(new OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
            {
                HelmetList helmet = (HelmetList) parent.getItemAtPosition(position);

                if (!helmet.getSelected())
                {
                    view.setBackgroundColor(Color.LTGRAY);
                    helmet.setSelected(Boolean.TRUE);
                }
                else
                {
                    view.setBackgroundColor(Color.TRANSPARENT);
                    helmet.setSelected(Boolean.FALSE);
                }
            }
        });

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
HelmetListAdapter.java

public class HelmetList
{
    public HelmetList (String name, String address, String img_hel, String img_rec, String img_bat,
                            String img_dsk, String img_str, Boolean selected)
    {
        super();
        this.name       = name;
        this.address    = address;
        this.img_hel    = img_hel;
        this.img_rec    = img_rec;
        this.img_bat    = img_bat;
        this.img_dsk    = img_dsk;
        this.img_str    = img_str;
        this.selected   = selected;
    }

    private String name;
    private String address;
    private String img_hel;
    private String img_rec;
    private String img_bat;
    private String img_dsk;
    private String img_str;
    private Boolean selected;

    public String getName ()
    {
        return name;
    }

    public void setName (String s_name)
    {
        this.name = s_name;
    }

    public String getAddress ()
    {
        return address;
    }

    public void setAddress (String s_address)
    {
        this.address = s_address;
    }

    public String getImgHel ()
    {
        return img_hel;
    }

    public void setImgHel (String s_img_hel)
    {
        this.img_hel = s_img_hel;
    }

    public String getImgRec ()
    {
        return img_rec;
    }

    public void setImgRec (String s_img_rec)
    {
        this.img_rec = s_img_rec;
    }

    public String getImgBat ()
    {
        return img_bat;
    }

    public void setImgBat (String s_img_bat)
    {
        this.img_bat = s_img_bat;
    }

    public String getImgDsk ()
    {
        return img_dsk;
    }

    public void setImgDsk (String s_img_dsk)
    {
        this.img_dsk = s_img_dsk;
    }

    public String getImgStr ()
    {
        return img_str;
    }

    public void setImgStr (String s_img_str)
    {
        this.img_str = s_img_str;
    }

    public Boolean getSelected ()
    {
        return selected;
    }

    public void setSelected (Boolean s_selected)
    {
        this.selected = s_selected;
    }
}
public class HelmetListAdapter extends ArrayAdapter<HelmetList>
{
    private int resource;
    private LayoutInflater inflater;
    private Context context;

    public HelmetListAdapter (Context p_context, int p_resource, List<HelmetList> p_objects)
    {
        super (p_context, p_resource, p_objects);
        resource = p_resource;
        inflater = LayoutInflater.from (p_context);
        context = p_context;
    }

    @Override
    public View getView (int position, View convertView, ViewGroup parent)
    {
        convertView = ( RelativeLayout ) inflater.inflate( resource, null );
        HelmetList Helmet = getItem (position);

        TextView hname = (TextView) convertView.findViewById(R.id.h_name);
        hname.setText(Helmet.getName ());

        TextView haddress = (TextView) convertView.findViewById(R.id.h_address);
        haddress.setText(Helmet.getAddress ());

        ImageView himage = (ImageView) convertView.findViewById(R.id.h_image);
        String uri = "drawable/" + Helmet.getImgHel();
        int imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        Drawable image = context.getResources().getDrawable(imageResource);
        himage.setImageDrawable(image);

        ImageView hrec = (ImageView) convertView.findViewById(R.id.h_rec);
        uri = "drawable/" + Helmet.getImgRec();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hrec.setImageDrawable(image);

        ImageView hlbat = (ImageView) convertView.findViewById(R.id.h_lb);
        uri = "drawable/" + Helmet.getImgBat();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hlbat.setImageDrawable(image);

        ImageView hldsk = (ImageView) convertView.findViewById(R.id.h_ld);
        uri = "drawable/" + Helmet.getImgDsk();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hldsk.setImageDrawable(image);

        ImageView hstr = (ImageView) convertView.findViewById(R.id.h_str);
        uri = "drawable/" + Helmet.getImgStr();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hstr.setImageDrawable(image);

        return convertView;

    }
}
public class MainActivity extends Activity
{
    private ListView lvhelmets;
    private HelmetListAdapter adhelmets;
    private Context ctx;
    List<Integer> selected;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ctx = this;

        List<HelmetList> helmetlist = new ArrayList<HelmetList>();
        helmetlist.add(new HelmetList("Bell", "11111", "helmetpic0", "rec",
                "bat", "mm", "str", Boolean.FALSE));
        helmetlist.add(new HelmetList("Shoei", "33333", "helmetpic1", "rec",
                                        "bat", "mm", "str", Boolean.FALSE));
        helmetlist.add(new HelmetList("Harley Davidson", "55555", "helmetpic2", "rec",
                                        "bat", "mm", "str", Boolean.FALSE));
        helmetlist.add(new HelmetList("Joe Rocket", "77777", "helmetpic3", "rec",
                "bat", "mm", "str", Boolean.FALSE));


        lvhelmets = (ListView) findViewById(R.id.Helmet_list);
        lvhelmets.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);

        adhelmets = new HelmetListAdapter(ctx, R.layout.row_format, helmetlist);
        lvhelmets.setAdapter (adhelmets);

        Button price = (Button) findViewById(R.id.bPrice);
        Button safety = (Button) findViewById(R.id.bSafety);

        price.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                lvhelmets.setAdapter(adhelmets);
                int count = lvhelmets.getCount();
                for (int i = 0; i < count; i++)
                {
                    HelmetList helmet = (HelmetList) lvhelmets.getItemAtPosition(i);
                    helmet.setSelected(Boolean.FALSE);
                }
                adhelmets.notifyDataSetChanged();
            }
        });

        safety.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                lvhelmets.setAdapter(adhelmets);
                int count = lvhelmets.getCount();
                for (int i = 0; i < count; i++)
                {
                    HelmetList helmet = (HelmetList) lvhelmets.getItemAtPosition(i);
                    helmet.setSelected(Boolean.FALSE);
                }
                adhelmets.notifyDataSetChanged();
            }
        });



        lvhelmets.setOnItemClickListener(new OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
            {
                HelmetList helmet = (HelmetList) parent.getItemAtPosition(position);

                if (!helmet.getSelected())
                {
                    view.setBackgroundColor(Color.LTGRAY);
                    helmet.setSelected(Boolean.TRUE);
                }
                else
                {
                    view.setBackgroundColor(Color.TRANSPARENT);
                    helmet.setSelected(Boolean.FALSE);
                }
            }
        });

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
public class HelmetListAdapter扩展了ArrayAdapter
{
私有int资源;
私人充气机;
私人语境;
公共头盔适配器(上下文p_上下文、int p_资源、列表p_对象)
{
super(p_上下文、p_资源、p_对象);
资源=p_资源;
充气器=从(p_上下文)开始的充气器;
上下文=p_上下文;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图)
{
convertView=(RelativeLayout)充气器。充气(资源,空);
头盔列表头盔=获取项目(位置);
TextView hname=(TextView)convertView.findViewById(R.id.h_名称);
hname.setText(Helmet.getName());
TextView haddress=(TextView)convertView.findViewById(R.id.h_地址);
haddress.setText(Helmet.getAddress());
ImageView himage=(ImageView)convertView.findViewById(R.id.h_图像);
字符串uri=“drawable/”+Helmet.getImgHel();
int-imageResource=context.getResources().getIdentifier(uri,null,context.getPackageName());
Drawable image=context.getResources().getDrawable(imageResource);
himage.setImageDrawable(图像);
ImageView hrec=(ImageView)convertView.findViewById(R.id.h_rec);
uri=“drawable/”+Helmet.getImgRec();
imageResource=context.getResources().getIdentifier(uri,null,context.getPackageName());
image=context.getResources().getDrawable(imageResource);
hrec.setImageDrawable(图像);
ImageView hlbat=(ImageView)convertView.findViewById(R.id.h_lb);
uri=“drawable/”+Helmet.getImgBat();
imageResource=context.getResources().getIdentifier(uri,null,context.getPackageName());
image=context.getResources().getDrawable(imageResource);
hlbat.setImageDrawable(图像);
ImageView hldsk=(ImageView)convertView.findViewById(R.id.h_ld);
uri=“drawable/”+Helmet.getImgDsk();
imageResource=context.getResources().getIdentifier(uri,null,context.getPackageName());
image=context.getResources().getDrawable(imageResource);
hldsk.setImageDrawable(图像);
ImageView hstr=(ImageView)convertView.findViewById(R.id.h_str);
uri=“drawable/”+Helmet.getImgStr();
imageResource=context.getResources().getIdentifier(uri,null,context.getPackageName());
image=context.getResources().getDrawable(imageResource);
hstr.setImageDrawable(图像);
返回视图;
}
}
MainActivity.java

public class HelmetList
{
    public HelmetList (String name, String address, String img_hel, String img_rec, String img_bat,
                            String img_dsk, String img_str, Boolean selected)
    {
        super();
        this.name       = name;
        this.address    = address;
        this.img_hel    = img_hel;
        this.img_rec    = img_rec;
        this.img_bat    = img_bat;
        this.img_dsk    = img_dsk;
        this.img_str    = img_str;
        this.selected   = selected;
    }

    private String name;
    private String address;
    private String img_hel;
    private String img_rec;
    private String img_bat;
    private String img_dsk;
    private String img_str;
    private Boolean selected;

    public String getName ()
    {
        return name;
    }

    public void setName (String s_name)
    {
        this.name = s_name;
    }

    public String getAddress ()
    {
        return address;
    }

    public void setAddress (String s_address)
    {
        this.address = s_address;
    }

    public String getImgHel ()
    {
        return img_hel;
    }

    public void setImgHel (String s_img_hel)
    {
        this.img_hel = s_img_hel;
    }

    public String getImgRec ()
    {
        return img_rec;
    }

    public void setImgRec (String s_img_rec)
    {
        this.img_rec = s_img_rec;
    }

    public String getImgBat ()
    {
        return img_bat;
    }

    public void setImgBat (String s_img_bat)
    {
        this.img_bat = s_img_bat;
    }

    public String getImgDsk ()
    {
        return img_dsk;
    }

    public void setImgDsk (String s_img_dsk)
    {
        this.img_dsk = s_img_dsk;
    }

    public String getImgStr ()
    {
        return img_str;
    }

    public void setImgStr (String s_img_str)
    {
        this.img_str = s_img_str;
    }

    public Boolean getSelected ()
    {
        return selected;
    }

    public void setSelected (Boolean s_selected)
    {
        this.selected = s_selected;
    }
}
public class HelmetListAdapter extends ArrayAdapter<HelmetList>
{
    private int resource;
    private LayoutInflater inflater;
    private Context context;

    public HelmetListAdapter (Context p_context, int p_resource, List<HelmetList> p_objects)
    {
        super (p_context, p_resource, p_objects);
        resource = p_resource;
        inflater = LayoutInflater.from (p_context);
        context = p_context;
    }

    @Override
    public View getView (int position, View convertView, ViewGroup parent)
    {
        convertView = ( RelativeLayout ) inflater.inflate( resource, null );
        HelmetList Helmet = getItem (position);

        TextView hname = (TextView) convertView.findViewById(R.id.h_name);
        hname.setText(Helmet.getName ());

        TextView haddress = (TextView) convertView.findViewById(R.id.h_address);
        haddress.setText(Helmet.getAddress ());

        ImageView himage = (ImageView) convertView.findViewById(R.id.h_image);
        String uri = "drawable/" + Helmet.getImgHel();
        int imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        Drawable image = context.getResources().getDrawable(imageResource);
        himage.setImageDrawable(image);

        ImageView hrec = (ImageView) convertView.findViewById(R.id.h_rec);
        uri = "drawable/" + Helmet.getImgRec();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hrec.setImageDrawable(image);

        ImageView hlbat = (ImageView) convertView.findViewById(R.id.h_lb);
        uri = "drawable/" + Helmet.getImgBat();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hlbat.setImageDrawable(image);

        ImageView hldsk = (ImageView) convertView.findViewById(R.id.h_ld);
        uri = "drawable/" + Helmet.getImgDsk();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hldsk.setImageDrawable(image);

        ImageView hstr = (ImageView) convertView.findViewById(R.id.h_str);
        uri = "drawable/" + Helmet.getImgStr();
        imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
        image = context.getResources().getDrawable(imageResource);
        hstr.setImageDrawable(image);

        return convertView;

    }
}
public class MainActivity extends Activity
{
    private ListView lvhelmets;
    private HelmetListAdapter adhelmets;
    private Context ctx;
    List<Integer> selected;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ctx = this;

        List<HelmetList> helmetlist = new ArrayList<HelmetList>();
        helmetlist.add(new HelmetList("Bell", "11111", "helmetpic0", "rec",
                "bat", "mm", "str", Boolean.FALSE));
        helmetlist.add(new HelmetList("Shoei", "33333", "helmetpic1", "rec",
                                        "bat", "mm", "str", Boolean.FALSE));
        helmetlist.add(new HelmetList("Harley Davidson", "55555", "helmetpic2", "rec",
                                        "bat", "mm", "str", Boolean.FALSE));
        helmetlist.add(new HelmetList("Joe Rocket", "77777", "helmetpic3", "rec",
                "bat", "mm", "str", Boolean.FALSE));


        lvhelmets = (ListView) findViewById(R.id.Helmet_list);
        lvhelmets.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);

        adhelmets = new HelmetListAdapter(ctx, R.layout.row_format, helmetlist);
        lvhelmets.setAdapter (adhelmets);

        Button price = (Button) findViewById(R.id.bPrice);
        Button safety = (Button) findViewById(R.id.bSafety);

        price.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                lvhelmets.setAdapter(adhelmets);
                int count = lvhelmets.getCount();
                for (int i = 0; i < count; i++)
                {
                    HelmetList helmet = (HelmetList) lvhelmets.getItemAtPosition(i);
                    helmet.setSelected(Boolean.FALSE);
                }
                adhelmets.notifyDataSetChanged();
            }
        });

        safety.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                lvhelmets.setAdapter(adhelmets);
                int count = lvhelmets.getCount();
                for (int i = 0; i < count; i++)
                {
                    HelmetList helmet = (HelmetList) lvhelmets.getItemAtPosition(i);
                    helmet.setSelected(Boolean.FALSE);
                }
                adhelmets.notifyDataSetChanged();
            }
        });



        lvhelmets.setOnItemClickListener(new OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
            {
                HelmetList helmet = (HelmetList) parent.getItemAtPosition(position);

                if (!helmet.getSelected())
                {
                    view.setBackgroundColor(Color.LTGRAY);
                    helmet.setSelected(Boolean.TRUE);
                }
                else
                {
                    view.setBackgroundColor(Color.TRANSPARENT);
                    helmet.setSelected(Boolean.FALSE);
                }
            }
        });

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
公共类MainActivity扩展活动
{
私人头盔;
私人头盔固定装置;
私有上下文ctx;
选择的列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ctx=这个;
List helmetlist=new ArrayList();
头盔列表。添加(新头盔列表(“Bell”、“11111”、“helmetpic0”、“rec”),
“bat”,“mm”,“str”,布尔值。FALSE);
头盔列表。添加(新头盔列表(“Shoei”、“33333”、“helmetpic1”、“rec”),
“bat”,“mm”,“str”,布尔值。FALSE);
头盔列表。添加(新头盔列表(“哈雷戴维森”、“55555”、“头盔PIC2”、“rec”,
“bat”,“mm”,“str”,布尔值。FALSE);
头盔列表。添加(新头盔列表(“乔火箭”、“77777”、“头盔PIC3”、“rec”,
“bat”,“mm”,“str”,布尔值。FALSE);
lvhelmets=(列表视图)findViewById(R.id.Helmet\u列表);
lvhelmets.setChoiceMode(AbsListView.CHOICE\u MODE\u MULTIPLE);
adhelmets=新头盔适配器(ctx,R.layout.row_格式,头盔列表);
lvhelmets.setAdapter(adhelmets);
按钮价格=(按钮)findViewById(R.id.B价格);
按钮安全=(按钮)findViewById(R.id.B安全);
price.setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图)
{
lvhelmets.固定接头(连接件);
int count=lvhelmets.getCount();
for(int i=0;i