2013-03-12 3 views
1

je veux créer un ListView avec des images et du texte dans chaque ligne qui change sa taille de façon dynamique (par exemple, au début, le listView ne montrera rien, puis, je pourrai ajouter des entrées à la liste), aussi je veux que le listView puisse charger la liste des images bitmap et non des images de drawable.changer dynamiquement taille ListView et charger des images

i créé ce code, mais le seul code charger des images de drawable et créé une fois (dire que je ne peux pas changer la liste dynamique - ajouter ou supprimer des entrées de LISTVIEW)

String[] text = { "One", "Two", "Three", "Four", "Five", "Six", "Seven", 
     "Eight", "Nine", "Ten" }; 

    int[] image = { R.drawable.logo, R.drawable.logo, R.drawable.logo, 
     R.drawable.logo, R.drawable.logo, R.drawable.logo, R.drawable.logo, 
     R.drawable.logo, R.drawable.logo, R.drawable.logo }; 

    public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
lv.setAdapter(new MyCustomAdapter(text, listImages)); 
      edittext= (EditText) findViewById(R.id.EditText01); 

      edittext.addTextChangedListener(new TextWatcher() 
      { 

      public void afterTextChanged(Editable s) 
      { 

      } 

      public void beforeTextChanged(CharSequence s, int start, 
      int count, int after) 
      { 

      } 

      public void onTextChanged(CharSequence s, int start, 
      int before, int count) 
      { 

      textlength = edittext.getText().length(); 
      text_sort.clear(); 
      image_sort.clear(); 

      for (int i = 0; i < text.length; i++) 
      { 
      if (textlength <= text[i].length()) 
      { 
       if (edittext.getText().toString(). 
      equalsIgnoreCase((String) text[i].subSequence(0, textlength))) 
       { 
       text_sort.add(text[i]); 
       // image_sort.add(image[i]); 
       } 
      } 
      } 

      lv.setAdapter(new MyCustomAdapter 
      (text_sort, image_sort)); 

      } 
      }); 
     } 

Répondre

0

Cocher cette mise en œuvre de listview http://www.java2s.com/Code/Android/UI/Demonstratestheusingalistviewintranscriptmode.htm

Vérifiez ce tutoriel pour utiliser Afficher la liste de personnalisation article http://www.framentos.com/en/android-tutorial/2012/07/16/listview-in-android-using-custom-listadapter-and-viewcache/

Eidt: Utilisez cette classe d'adaptateur:

 class MyCustomAdapter extends BaseAdapter{ 
     public static ArrayList text_array = new ArrayList(); 
     public static ArrayList image_array = new ArrayList(); 
     public int getCount(){ 
      return text_array..size(); 
     } 
     public long getItemId(int position){ 
      return position; 
     } 
     public String getItem(int position){ 
      return null; 
     } 
     public View getView(final int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflate = getLayoutInflater(); 
     View v = inflate.inflate(R.layout.listview, parent, false); 
     final ImageView image = (ImageView) v.findViewById(R.id.ImageView01); 

     if(listImages.get(position) != null) { 
        image.setImageBitmap(image_array.get(position)); 
        image.setVisibility(View.VISIBLE); 
      } else { 
        image.setVisibility(View.GONE); 
        image.setImageBitmap(null); 
         image.setVisibility(View.VISIBLE); 
     } 
    return v; 

    } 
    public void addObject(String text, Bitmap bitmap) { 
    text_array.add(text); 
     image_array.add(bitmap); 
     notifyDataSetChanged(); 
    } 
} 

appel de la fonction addObject de votre classe d'activité Ajouter un nouvel élément en mode liste

+0

Salut, merci pour la réponse, mais ce lien ne m'a pas aider, il n'y a pas d'exemple de la façon dont l'ajout ou la suppression dynamique articles de listView et comment charger la liste des images bitmap à listview ... de l'aide supplémentaire? merci –

+1

son exemple et de l'exemple android, vous pouvez le voir résultat dans l'application ApiDemo et il est pour la vue liste dynamique. Pour utiliser l'image dans listview vous devez étendre la classe BaseAdapter/ArrayAdapter pour votre vue de liste –

+0

J'ai mis à jour mon code (la fonction getView) et j'ai un problème (post logcat aussi) –

Questions connexes