繁体   English   中英

具有listadapter突出显示项的Listview

[英]Listview with listadapter highlight item

我正在使用下面的代码的ListView。 问题是当我单击列表项时,它没有突出显示。 您看,我尝试使用arg0.setBackgroundColor(Color.RED); 但这会导致当我单击该项目并且不放开手指时,什么也不会发生,当我单击该项目并放开手指时,它将突出显示并保持突出显示状态。 当我放开手指时,如何使高光被去除? 我不知道为什么这不像一个简单的列表视图。

 private class ListAdapter extends ArrayAdapter { 
        private ArrayList mList; 
        private Context mContext;

        public ListAdapter(Context context, int textViewResourceId, ArrayList list) {
            super(context, textViewResourceId, list);
            this.mList = list;
            this.mContext = context;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            View view = convertView;

            try {
                if (view == null) {
                    LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    view = vi.inflate(R.layout.list_item, null);
                }

                final Object listItem = mList.get(position);
                if (listItem != null) {

                    ((TextView) view.findViewById(R.id.tv_name)).setText(((HotOrNot) listItem).getName());
                    view.setOnClickListener(new OnClickListener() {
                        public void onClick(View arg0) {
                            arg0.setBackgroundColor(Color.RED);
                            Toast.makeText(SQLView.this, "ID: " + ((HotOrNot) listItem).getID(), Toast.LENGTH_SHORT).show();
                            Toast.makeText(SQLView.this, "Name: " + ((HotOrNot) listItem).getName(), Toast.LENGTH_SHORT).show();
                            Toast.makeText(SQLView.this, "Descr: " + ((HotOrNot) listItem).getDescription(), Toast.LENGTH_SHORT).show();


                           // finish();
                        }
                    });
                }
            } catch (Exception e) {
                //Log.i(Splash.ListAdapter.class.toString(), e.getMessage());
            }
            return view;
        }
    }

将此xml文件放在您的drawable文件夹中,并在mainlayout的list_item中设置背景

  <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">

        <item android:drawable="#FFFFFF" android:state_pressed="false" android:state_selected="false"/>
        <item android:drawable="#FF00FF" android:state_pressed="true" android:state_selected="false"/>
        <item android:drawable="#FF00FF" android:state_pressed="true" android:state_selected="true"/>

    </selector>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM