ListFragment ..... Image bei einer customlistview ist nicht änderbär .... hilfe (code dabei)

  • Antworten:1
Lukas R.
  • Forum-Beiträge: 180

29.04.2014, 18:52:37 via Website

Hallo Will dass in einer custom listview dass image bei jedem namen gändert wird. Habe schon bei jeden Namen ein Image aber dasselbe Habe es nun mit dem folgenden code probiert aber es bleibt immernoch das selbe icon wiso?:

public class Mitglieder extends ListFragment {


 public class MyListAdapter extends ArrayAdapter<String> {

  Context myContext;

  public MyListAdapter(Context context, int textViewResourceId,
    String[] objects) {
   super(context, textViewResourceId, objects);
   myContext = context;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   //return super.getView(position, convertView, parent);

   LayoutInflater inflater = 
     (LayoutInflater)myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   View row=inflater.inflate(R.layout.mitglieder, parent, false);
   TextView label=(TextView)row.findViewById(R.id.month);
   label.setText(month[position]);
   ImageView icon=(ImageView)row.findViewById(R.id.icon);
   ImageView icon2=(ImageView)row.findViewById(R.id.icon2);
   //Customize your icon here
   icon.setImageResource(R.drawable.ic_launcher);
   icon2.setImageResource(R.drawable.forward);

   if (month.equals("Lukas R.")) {
        icon.setImageResource(R.drawable.forward);
    } else if (month.equals("Marcel P.")) {
        icon.setImageResource(R.drawable.forward);
    } else if (month.equals("Johannes B.")) {
        icon.setImageResource(R.drawable.forward);
    } else {
        icon.setImageResource(R.drawable.forward);
    }

    return row;
}



 }

 String[] month ={
   "Marcel P.", "Chantal H.", "Christian P.","Melanie T.", "Sarah L.", "Nicola S.","Patricia C.", "Katarina L.", "Lukas R.","Karam O.", 
             "Johannes B.", "Christina S.","Maida B.", "Carina W.", "Lukas Ro.","Michael G.", "David K.", "Sabrina W."
 };




 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);



  MyListAdapter myListAdapter = 
    new MyListAdapter(getActivity(), R.layout.mitglieder, month);
  setListAdapter(myListAdapter);
 }

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {
  return inflater.inflate(R.layout.mitglieder, container, false);
 }

 @Override
 public void onListItemClick(ListView l, View v, int position, long id) {
  Toast.makeText(
    getActivity(), 
    getListView().getItemAtPosition(position).toString(), 
    Toast.LENGTH_LONG).show();
 }

}

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
impjor
  • Forum-Beiträge: 1.793

29.04.2014, 20:37:14 via App

  1. Du solltest statt nur den LayoutInflator zu benutzen, zuerst prüfen, ob convertView nicht null ist.
  2. Month ist ein denkbar schlechter Name
  3. Du vergleichst ein Array mit einem String, das gibt immer false Du meinst bestimmt month[position].equals()

— geändert am 29.04.2014, 20:41:41

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten