2

我在Android做项目。我想从ListViewbackground更改颜色以及textcolor所选项目的颜色。这是我的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="right"
    android:orientation="vertical" >


    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >


        <ListView
            android:id="@+id/listView1"
            android:layout_width="265dp"
            android:layout_height="366dp"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="20dp"
            android:layout_weight="0.00"
            android:drawSelectorOnTop="true" >

        </ListView>
    </LinearLayout>

</LinearLayout> 

所以,我有ListView一些学生的名字,并且可以使用checkbox.

ListView stud_lst=(ListView) findViewById(R.id.listView1);

stud_lst.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

我想更改所选学生的背景和文字颜色。我已经看到了一些答案,但我没有得到它。请帮我。

4

2 回答 2

0

使用自定义适配器并在您的活动类中执行以下操作:

   //  mListview is ur listview object.
   mListview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
                    view.setBackgroundColor("your bg's color id");
            }
   }
于 2012-04-30T07:06:35.393 回答
-1

您必须创建一个自定义适配器来更改项目的背景颜色。这是自定义适配器的示例:

public class PaListAdapter  extends BaseAdapter{
        private LayoutInflater mInflater;

         private ArrayList<String> platevalue = new ArrayList<String>();

           ViewHolder holder;
        public PaListAdapter(Context context,ArrayList<String> value)
        {
            // Cache the LayoutInflate to avoid asking for a new one each time.
            mInflater = LayoutInflater.from(context);



            //mycontext = context;
            platevalue.clear();
            platevalue =value;



        }


        public int getCount() 
        {
            return platevalue.size();
        }

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

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

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





            if (convertView == null) 
            {
                 convertView = mInflater.inflate(R.layout.select_dialog, null);

                holder = new ViewHolder();
                holder.hTransID =(TextView) convertView.findViewById(R.id.txtChoice);




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

            holder.hTransID.setText(platevalue.get(position));




            return convertView;
        }

        static class ViewHolder 
        {      
              TextView    hTransID;


        }
    }

select_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:descendantFocusability="blocksDescendants"
 android:background="#000000"
    >

    <TextView
        android:id="@+id/txtChoice"

        android:layout_gravity="center_vertical|left"
        android:gravity="center_vertical|left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:textColor="#000000"/> 

</LinearLayout>

在 Activity Class.Define 它像:

simpleefficientadapter efficientadapter;

  efficientadapter=new simpleefficientadapter(CLASSNAME.this, VALUES);
   listView.setAdapter(efficientadapter);
于 2012-04-20T10:59:17.290 回答