2017-11-02 17 views
-1

こんにちは、ありがとうございました。私はいくつかの写真を取得しようとしていて、Androidのgridviewに追加しました。Gridview ImageAdapterを使用してそれを行うことができましたが、TextViewでテキスト値を取得したい、 ArrayListの中に保存され、ここで私のアダプタです:Textviewの値をgridviewに追加するには?

public class ImageAdapter extends BaseAdapter { 

private Context mContext; 



    public ImageAdapter(Context c) { 
     mContext = c; 
    } 

    public int getCount() { 
     return MainActivity.charactersimageurl.size(); 
    } 

    public Object getItem(int position) { 
     return null; 
    } 

    public long getItemId(int position) { 
     return 0; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 
     if (convertView == null) { // if it's not recycled, initialize some attributes 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(175, 175)); 
    // imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     // imageView.setPadding(8, 8, 8, 8); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     Picasso.with(this.mContext).load(MainActivity.charactersimageurl.get(position)).into(imageView); 
     return imageView; 
    } 

、ここでは私のXMLです:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginTop="5dp" 
android:background="@color/FourthColor" 
android:orientation="vertical" 
android:padding="5dp"> 

<ImageView 
    android:id="@+id/image" 
    android:layout_width="100dp" 
    android:layout_height="100dp" /> 

<TextView 
    android:id="@+id/undertitle" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:gravity="center" 
    android:textSize="12sp" /> 

+1

uは、カスタムadapter.httpsを作成する必要があります。//www.learn2crack.com/2014/01/android-custom-gridview.html – DroiDev

+0

おかげで多くの人は、そんなに私を助けました。 –

答えて

1

あなたはstaticとしてMainActivity.charactersimageurlを持っており、URLのを追加する必要はありませんをImageAdapterコンストラクタに追加します。 getView()にはgetItem()を使用できます。

public class ImageAdapter extends BaseAdapter { 
    private Context mContext; 
    private List<String> imageUrls; 

    public ImageAdapter(Context c, List<String> imageUrls) { 
    mContext = c; 
    this.imageUrls = imageUrls; 
    } 

    public int getCount() { 
    return imageUrls.size(); 
    } 

    public Object getItem(int position) { 
    return imageUrls.get(position); 
    } 

    public long getItemId(int position) { 
    return 0; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
    if (convertView == null) { // if it's not recycled, initialize some attributes 
     imageView = new ImageView(mContext); 
     imageView.setLayoutParams(new GridView.LayoutParams(175, 175)); 
     // imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     // imageView.setPadding(8, 8, 8, 8); 
    } else { 
     imageView = (ImageView) convertView; 
    } 

    String imageUrl = (String) getItem(position); 
    Picasso.with(this.mContext).load(imageUrl).into(imageView); 
    return imageView; 
    } 

リストの項目を変更したい場合は、以下のようにaddItem(String url)を追加する必要があります。

public void addItem(String url) { 
    imageUrls.add(url); 
    notifyDataSetChanged(); 
} 
関連する問題