2016-08-08 22 views

Antwort

0

Was Sie suchen ist ein Listview-Adapter

public class ExampleAdapter extends BaseAdapter { 
    List<Product> products; 
    private Activity context; 

    @Override 
    public int getCount() { 
     return products.size(); 
    } 

    public ExampleAdapter(List<Product> products, Activity context) { 
     this.products = products; 
     this.context = context; 
    } 

    @Override 
    public Object getItem(int position) { 
     return products.get(position); 
    } 

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

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     final Product product = products.get(position); 

     ViewHolder holder; 

     if (convertView == null) { 
      LayoutInflater inflater = context.getLayoutInflater(); 
      convertView = inflater.inflate(R.layout.row_shopping_item, null); 
      holder = new ViewHolder(convertView); 
      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     holder.getProductTextView().setText(product.getName()); 
     holder.getProductImageView(). setImageResource(product.getPicture()); 

     return convertView; 
    } 

    private class ViewHolder { 
     private final TextView productTextView; 
     private final ImageView productImageView; 

     private ViewHolder(View wrapperView) { 
      productTextView = (TextView) wrapperView.findViewById(R.id.tvName); 
      productImageView = (TextView) wrapperView.findViewById(R.id.ivPicture); 

     } 

     public TextView getProductTextView() { 
      return productTextView; 
     } 

     public ImageView getProductImageView() { 
      return productImageView; 
     } 

    } 
} 

Dieser Adapter muss ein Layout definieren, was die Zeilen aussehen wird. Das wird so etwas wie dieses

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

    <ImageView 
     android:layout_gravity="center_vertical" 
     android:layout_width="50dp" 
     android:id="@+id/ivPicture" 
     android:layout_height="50dp" /> 

    <TextView 
     android:id="@+id/tvName" 
     android:text="Product 1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

schließlich in Ihrer Tätigkeit, wo Sie die Übersicht angezeigt werden soll, müssen Sie eine Listenansicht verwenden, und stellen Sie den Adapter

final ExampleAdapter adapter = new ExampleAdapter(list, this); 
listview.setAdapter(adapter); 
+0

Wie kann ich zwischen den 2 Layouts mit nur 1 Aktivität wechseln? –

+0

Sie können dies tun, indem Sie jedes Layout in ein separates Fragment einfügen. – MrJM

+0

Weitere Informationen hierzu finden Sie hier https://developer.android.com/training/basics/fragments/fragment-ui.html – MrJM