2012-03-02 4 views
0

J'ai 10 besoins graphiques à afficher dans mon ListViewandroid utilisation propre image dans ListView

et je crée une classe comme cette

public class LayoutAdapterObj { 
public String addString; 
public ImageView leftImage; 
public String backgroundImageName; 
public LayoutAdapterObj(String addString,ImageView leftImageName,String backgroundImageName){ 
    this.addString = addString; 
    this.leftImage = leftImageName; 
    this.backgroundImageName = backgroundImageName; 
} 

et quand je crée un objet LayoutAdaptor

je ce

aArray.add(new LayoutAdapterObj("1",new ImageView(null, null, R.drawable.frame1),"R.drawable.layout")); 
    aArray.add(new LayoutAdapterObj("2",new ImageView(null, null, R.drawable.frame2),"R.drawable.layout")); 
    LayoutListAdapter m_adapter; 
    m_adapter = new LayoutListAdapter(this, R.layout.topbarlayout, aArray); 

après que .... dans ma classe d'adaptateur, je le fais

 public View getView(int position, View convertView, ViewGroup parent) { 
       View v = convertView; 
       if (v == null) { 
        LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
         v = vi.inflate(R.layout.layout1, null); 
       } 
       LayoutAdapterObj o = items.get(position); 
       if (o != null) { 
         TextView addText = (TextView) v.findViewById(R.id.addtext);      
         ImageView leftImage=(ImageView)v.findViewById(R.id.layoutframe); 
         if(!o.backgroundImageName.equals("")) 
         { 

         } 
         if(addText!=null) 
         { 
          addText.setText(o.addString); 
         } 

le mauvais message est comme ce

java.lang.IllegalStateException: Could not execute method of the activity 

if(leftImage != null) 
{ 
    leftImage= o.leftImage; 
} 

Répondre

0

voir ce ... par exemple ... `

class UserListAdapter extends ArrayAdapter<String> 
    { 



     @Override 
     public int getCount() { 
      // TODO Auto-generated method stub 
      int temp; 
      if(SharedVariables.is_traffic_search_ON_flag){ 
       temp=search_cases_trafficTicketsList.size(); 
      }else{ 
       temp=search_cases_criminalTicketsList.size(); 
      } 
      return temp; 
     } 

     Activity context; 

     public UserListAdapter(Activity context) { 
      super(context, 0); 

      Log.d("hh","sgbdfjfdgfk"); 

      this.context = context; 
     } 

     class ViewHolder { 

      RelativeLayout rl2; 
      ImageView genderimage; 
      TextView ticketcounttt; 
      TextView name; 
      TextView city; 
      TextView added_date; 
     } 

     @SuppressWarnings("unused") 
     public View getView(final int position, View convertView, ViewGroup parent){//here we inflating the layout "R.layout.cars_row" 
      ViewHolder holder; 
      View rowView = convertView; 
      if (rowView == null) { 

       LayoutInflater inflater = context.getLayoutInflater(); 

       if(SharedVariables.is_traffic_search_ON_flag)rowView = inflater.inflate(R.layout.traffic_row, null, true); 
       else rowView = inflater.inflate(R.layout.criminal_row, null, true); 

       holder = new ViewHolder(); 


       holder.rl2=(RelativeLayout) rowView.findViewById(R.id.rl2); 

       try{ 
       holder.genderimage=(ImageView) rowView.findViewById(R.id.genderimage); 
       }catch (Exception e) { 
        e.printStackTrace(); 
        // TODO: handle exception 
       } 
       holder.ticketcounttt=(TextView) rowView.findViewById(R.id.ticketcounttt); 
       holder.name=(TextView) rowView.findViewById(R.id.textView1); 
       holder.city=(TextView) rowView.findViewById(R.id.textView2); 
       holder.added_date=(TextView) rowView.findViewById(R.id.textView333); 

       //Traffic cases... 
       if(SharedVariables.is_traffic_search_ON_flag) 
       { 

        if(search_cases_trafficTicketsList.get(position).CaseID!=0)holder.rl2.setBackgroundResource(R.drawable.green_color1); //Pink color... 
        else holder.rl2.setBackgroundResource(R.drawable.pink_color); //Green color... 

     if(search_cases_trafficTicketsList.get(position).Sex.equals("M"))holder.genderimage.setBackgroundResource(R.drawable.man); 
        else holder.genderimage.setBackgroundResource(R.drawable.woman); 
     holder.ticketcounttt.setTypeface(SharedVariables.font); 
     holder.name.setTypeface(SharedVariables.font); 
     holder.city.setTypeface(SharedVariables.font); 
     holder.added_date.setTypeface(SharedVariables.font); 
     holder.name.setText(search_cases_trafficTicketsList.get(position).FirstName+" "+search_cases_trafficTicketsList.get(position).LastName); 
     holder.city.setText(search_cases_trafficTicketsList.get(position).City+" City"+"("+search_cases_trafficTicketsList.get(position).ZIP+")"); 

        try{ 

         String s[]=search_cases_trafficTicketsList.get(position).ViolationDate.split("/"); 

         String month=SharedVariables.convertFromNumberToMonth(Integer.parseInt(s[0])); 
         String day=s[1]; 

         String year=s[2].substring(0,4); 

        holder.added_date.setText("Added: "+Integer.parseInt(day)+" "+month+" "+year); 
        }catch (Exception e) { 
         e.printStackTrace(); 
         // TODO: handle exception 
        }   

        try{ 
         holder.ticketcounttt.setText(""+search_cases_trafficTicketsList.get(position).Violations.split(",").length); 
        }catch (Exception e) { 
         e.printStackTrace(); 
         // TODO: handle exception 
        }  

       } 

       //Criminal casess... 
       else{ 

        if(search_cases_criminalTicketsList.get(position).CaseID!=0)holder.rl2.setBackgroundResource(R.drawable.green_color1); //Pink color... 
        else holder.rl2.setBackgroundResource(R.drawable.pink_color); //Green color... 

      holder.ticketcounttt.setTypeface(SharedVariables.font); 
     holder.name.setTypeface(SharedVariables.font); 
     holder.city.setTypeface(SharedVariables.font); 
     holder.added_date.setTypeface(SharedVariables.font); 
     holder.name.setText(search_cases_criminalTicketsList.get(position).FirstName+" "+search_cases_criminalTicketsList.get(position).LastName); 
     holder.city.setText(search_cases_criminalTicketsList.get(position).City+" City"); 

        try{ 

         String s[]=search_cases_criminalTicketsList.get(position).ViolationDate.split("/"); 

         String month=SharedVariables.convertFromNumberToMonth(Integer.parseInt(s[0])); 
         String day=s[1]; 

         String year=s[2].substring(0,4); 

        holder.added_date.setText("Added: "+Integer.parseInt(day)+" "+month+" "+year); 
        }catch (Exception e) { 
         e.printStackTrace(); 
         // TODO: handle exception 
        }   

        try{ 
         holder.ticketcounttt.setText(""+search_cases_criminalTicketsList.get(position).Violations.split(",").length); 
        }catch (Exception e) { 
         e.printStackTrace(); 
         // TODO: handle exception 
        }  

       } 


       rowView.setTag(holder);     

      } 
      else 
      { 
       holder = (ViewHolder) rowView.getTag(); 
      } 

      return rowView; 

     } 

     @Override 
     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      return position; 
     } 


    }` 

appeler votre adaptateur comme celui-ci

UserListAdapter a = new UserListAdapter(); yurlistview.setAdapter (a);

+0

semble que vous ne savez pas comment utiliser "modèle de support" ... si convertView! = Null, vous ne configurez pas les vues avec des valeurs ... – Selvin

+0

merci.en fait je sais cela.mais je suis confus ici à cause de Je suis confronté à ce problème. Maintenant, j'ai résolu le problème. –

Questions connexes