Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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 在运行时更改android中ListView的背景颜色_Java_Android_Listview_Android Listview - Fatal编程技术网

Java 在运行时更改android中ListView的背景颜色

Java 在运行时更改android中ListView的背景颜色,java,android,listview,android-listview,Java,Android,Listview,Android Listview,我正在用Android做项目。我想从列表视图中更改所选项目的背景颜色以及文本颜色。这是我的密码 <?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做项目。我想从列表视图中更改所选项目的
背景
颜色以及
文本颜色
。这是我的密码

<?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> 
我想更改所选学生的背景和文本颜色。 我已经看到了一些答案,但我不明白。
请帮助我。

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

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;


        }
    }

必须创建自定义适配器才能更改项目的背景色。以下是自定义适配器的示例:

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;


        }
    }

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

   //  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");
            }
   }
//mListview是您的listview对象。
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
view.setBackgroundColor(“您的背景颜色id”);
}
}

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

   //  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");
            }
   }
//mListview是您的listview对象。
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
view.setBackgroundColor(“您的背景颜色id”);
}
}

为listview创建自定义行。单击更改自定义行的背景颜色和文本颜色。任何其他不使用自定义行的想法为listview创建自定义行。单击更改自定义行的背景颜色和文本颜色。任何其他不使用自定义行的想法
   //  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");
            }
   }