0

我有一个带有两个 TextView 和三个 ImageView 的自定义 ListView。

星选择器.xml ?我该怎么做 ?

列表行项目与: 在此处输入图像描述

4

1 回答 1

0

您可以使用自定义列表视图来解决此问题。您可以使用列表视图扩展视图

list.setAdapter(CustomAdapter);

public class CustomAdapter extends BaseAdapter   implements OnClickListener {

         /*********** Declare Used Variables *********/
         private Activity activity;
         private ArrayList data;
         private static LayoutInflater inflater=null;
         public Resources res;
         ListModel tempValues=null;
         int i=0;

         /*************  CustomAdapter Constructor *****************/
         public CustomAdapter(Activity a, ArrayList d,Resources resLocal) {

                /********** Take passed values **********/
                 activity = a;
                 data=d;
                 res = resLocal;

                 /***********  Layout inflator to call external xml layout () ***********/
                  inflater = ( LayoutInflater )activity.
                                              getSystemService(Context.LAYOUT_INFLATER_SERVICE);

         }

         /******** What is the size of Passed Arraylist Size ************/
         public int getCount() {

             if(data.size()<=0)
                 return 1;
             return data.size();
         }

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

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

         /********* Create a holder Class to contain inflated xml file elements *********/
         public static class ViewHolder{

             public TextView text;
             public TextView text1;
             public TextView textWide;
             public ImageView image;

         }

         /****** Depends upon data size called for each row , Create each ListView row *****/
         public View getView(int position, View convertView, ViewGroup parent) {

             View vi = convertView;
             ViewHolder holder;

             if(convertView==null){

                 /****** Inflate tabitem.xml file for each row ( Defined below ) *******/
                 vi = inflater.inflate(R.layout.tabitem, null);

                 /****** View Holder Object to contain tabitem.xml file elements ******/

                 holder = new ViewHolder();
                 holder.text = (TextView) vi.findViewById(R.id.text);
                 holder.text1=(TextView)vi.findViewById(R.id.text1);
                 holder.image=(ImageView)vi.findViewById(R.id.image);

                /************  Set holder with LayoutInflater ************/
                 vi.setTag( holder );
             }
             else 
                 holder=(ViewHolder)vi.getTag();

             if(data.size()<=0)
             {
                 holder.text.setText("No Data");

             }
             else
             {
                 /***** Get each Model object from Arraylist ********/
                 tempValues=null;
                 tempValues = ( ListModel ) data.get( position );

                 /************  Set Model values in Holder elements ***********/

                  holder.text.setText( tempValues.getCompanyName() );
                  holder.text1.setText( tempValues.getUrl() );
                   holder.image.setImageResource(
                               res.getIdentifier(
                               "com.androidexample.customlistview:drawable/"+tempValues.getImage()
                               ,null,null));

                  /******** Set Item Click Listner for LayoutInflater for each row *******/

                  vi.setOnClickListener(new OnItemClickListener( position ));
             }
             return vi;
         }

         @Override
         public void onClick(View v) {
                 Log.v("CustomAdapter", "=====Row button clicked=====");
         }

         /********* Called when Item click in ListView ************/
         private class OnItemClickListener  implements OnClickListener{           
             private int mPosition;

             OnItemClickListener(int position){
                  mPosition = position;
             }

             @Override
             public void onClick(View arg0) {


               CustomListViewAndroidExample sct = (CustomListViewAndroidExample)activity;

              /****  Call  onItemClick Method inside CustomListViewAndroidExample Class ( See Below )****/

                 sct.onItemClick(mPosition);
             }               
         }   
     }
于 2013-10-23T03:56:24.130 回答