2015-06-11 2 views
1

вот мой код я есть PNG в моей вытяжке папке drinkcan велосипеда шляпе обувь mAdapter.addItem (R.drawable.drinkcan, "карта", "1");андроид: использовать ListView пользовательские изображения

может кто-нибудь помочь мне выяснить, как я могу добавить пользовательские изображения с различными элементами списка, например.

mAdapter.addItem(R.drawable.drinkcan, "drinkcan", "1"); 
mAdapter.addItem(R.drawable.shoes, "shoes", "1"); 
mAdapter.addItem(R.drawable.hat, "hat", "1"); 

я также это в моем главном XML

<LinearLayout android:id="@+id/thumbnail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="3dip" 
     android:layout_alignParentLeft="true" 
     android:layout_marginRight="5dip"> 

     <ImageView 
      android:id="@+id/list_image" 
      android:layout_width="50dip" 
      android:layout_height="50dip" 

      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

это изображение добавляется по всем пунктам? PLZ помочь мне добавить мои собственные значки.

+0

Нам нужна дополнительная информация, –

+0

Я работаю над этим проектом. Я начинаю http://exandroidstudio.blogspot.co.uk/2015/02/android-basic-tutorial-creating.html и теперь, как добавить пользовательские значки для каждого элемента? – user3695970

ответ

0

вы это путем создания пользовательского адаптера проверки ниже ссылка может это будет полезно для вас

http://www.androidinterview.com/android-custom-listview-with-image-and-text-using-arrayadapter/

+0

Эта ссылка, которую вы предоставляете, добавляет одинаковые значки на все элементы, которые у меня уже есть, и я не хочу этого сэра. – user3695970

+0

есть оба примера: ** Как создать пользовательский адаптер отображения изображения и TextView в ListView ** – SAM

+0

secoond post i выполнил все шаги, я получаю пустую белую страницу?. – user3695970

1

Для того чтобы это произошло сделать следующий

public class SingleItem { 

    private int drawableId; 
    private String name; 
    private String no; 

    public int getDrawableId() { 
     return drawableId; 
    } 

    public void setDrawableId(int drawableId) { 
     this.drawableId = drawableId; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getNo() { 
     return no; 
    } 

    public void setNo(String no) { 
     this.no = no; 
    } 
} 

Теперь создать метод чтобы добавить товар к этому Как

@Override 
     protected void onCreate(Bundle savedInstanceState) { 
//OnCreate of Activity you Created 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_login_screen); 

    ListView listView = (ListView) findViewById(R.id.list); 
    Adapter adapter = new Adapter(getAllItems); 
    listView.setAdapter(); 
     } 
private List<SingleItem> getAllItems(){ 
     List<SingleItem> allItems = new ArrayList<>(); 
     SingleItem singleItem = new SingleItem(); 
     singleItem.setName("hat"); 
     singleItem.setDrawableId(R.drawable.test); 
     singleItem.setNo("1"); 
     allItems.add(singleItem); 
     return allItems; 
    } 

И, наконец, используйте Base Adapter, чтобы установить AllItems в ListView. Нравится этим

class Adapter extends BaseAdapter { 

     private List<SingleItem> allSingleItems; 

     public Adapter(List<SingleItem> items) { 
      allSingleItems = items; 
     } 

     @Override 
     public int getCount() { 
      return (allSingleItems==null)?0:allSingleItems.size(); 
     } 

     @Override 
     public SingleItem getItem(int i) { 
      return allSingleItems.get(i); 
     } 

     @Override 
     public long getItemId(int i) { 
      return 0; 
     } 

     @Override 
     public View getView(int i, View view, ViewGroup viewGroup) { 

      //Set data in Views here 
      return null; 
     } 
    } 

Надеюсь, это поможет.

+0

Чувак это будет вызываться вместо этого mAdapter.addItem (R.drawable.drinkcan, "drinkcan", "1"); mAdapter.addItem (R.drawable.shoes, «обувь», «1»); mAdapter.addItem (R.drawable.hat, "hat", "1"); после этого добавьте адаптер, такой как адаптер адаптера = новый адаптер (getAllItems()); listView.setAdapter(); –

+0

были сделать это в этом приватном списке getAllItems() { Список allItems = new ArrayList <>(); SingleItem singleItem = new SingleItem(); одиночныйItem.SetName ("шапка"); singleItem.setDrawableId (R.drawable.test); singleItem.setNo ("1"); allItems.add (singleItem); return allItems; } – user3695970

+0

Посмотрите на мое отредактированное сообщение и, пожалуйста, примите ответ, если это сработает. –

0

я думаю, что это похоже на проект, который я сделал Я меняющийся элементое поле цвета зависит от их состояний, чтобы сделать это я создал пользовательский адаптер и фильтрую все данные по одному перед отображением в том, что случай, когда я могу легко установить цвет поля, зависит от их статуса.

Смежные вопросы