1

drawableとtextからcardviewに画像を1つずつrecyclerviewを使って追加しようとしています。私のドロウアブルに10枚の画像があり、5枚しか使いたくないと言います。だからそれをどうやる?ここ drawableからカードビューに画像を1つずつセットする

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/placeCard" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp" 
    card_view:cardCornerRadius="@dimen/card_corner_radius"> 

    <ImageView 
     android:id="@+id/placeImage" 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     android:scaleType="centerCrop" /> 

    <!-- Used for the ripple effect on touch --> 
    <LinearLayout 
     android:id="@+id/mainHolder" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="?android:selectableItemBackground" 
     android:orientation="horizontal" /> 

    <LinearLayout 
     android:id="@+id/placeNameHolder" 
     android:layout_width="match_parent" 
     android:layout_height="45dp" 
     android:layout_gravity="bottom" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/placeName" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:gravity="left" 
      android:paddingLeft="10dp" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textColor="@android:color/white" /> 

    </LinearLayout> 

</android.support.v7.widget.CardView> 

は私recyclerviewアダプタです: は、ここで私のcardviewある

public class SubPlaceAdapter extends RecyclerView.Adapter<SubPlaceRecyclerViewHolder>{ 

String ImageUri; 

@Override 
public SubPlaceRecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_places, null); 

    SubPlaceRecyclerViewHolder viewHolder = new SubPlaceRecyclerViewHolder(view); 
} 

@Override 
public void onBindViewHolder(SubPlaceRecyclerViewHolder holder, int position) { 

    // holder.subPlaceImage 
} 

@Override 
public int getItemCount() { 
    return 0; 
} 

}

私の見解ホルダー:助けを

public class SubPlaceRecyclerViewHolder extends RecyclerView.ViewHolder { 

protected ImageView subPlaceImage; 
protected TextView subPlaceTitle; 

public SubPlaceRecyclerViewHolder(View view) { 
    super(view); 
    this.subPlaceImage = (ImageView) view.findViewById(R.id.placeImage); 
    this.subPlaceTitle = (TextView) view.findViewById(R.id.placeName); 
} 

} 感謝:)

+0

あなたは5枚の画像を追加しますか? – Dentor

+0

@Dentor 私は名前を知っています。 –

+0

私はそれを得ました、解決策を投稿する時間が必要です – Dentor

答えて

3

ステップ1.最初のモデルを作成

public class ImageModel { 
    int imageId; 
    String aboutText; 


    public int getImageId() { 
     return imageId; 
    } 

    public void setImageId(int imageId) { 
     this.imageId = imageId; 
    } 

    public String getAboutText() { 
     return aboutText; 
    } 

    public void setAboutText(String aboutText) { 
     this.aboutText = aboutText; 
    }  
} 

ステップ2.あなたは、アダプタ

private ArrayList<ImageModel> setImageData(){ 
     ArrayList<ImageModel> projectList=new ArrayList<>(); 

     ImageModel imageModel=new ImageModel(); 
     imageModel.setImageId(R.mipmap.ic_star_fill); 
     imageModel.setAboutText("RandomText"); 
     projectList.add(imageModel); 

     ImageModel imageModel1=new ProjectModel(); 
     projectModel.setImageId(R.mipmap.ic_star_fill); 
     projectModel.setAboutText("RandomText"); 
     projectList.add(projectModel); 
     return projectList; 
    } 

に設定し、そこから自分のフラグメント/活動にimageModelの配列リストを返すメソッドを作成します。ステップ3. ArrayListを引数として持つコンストラクタをアダプタに作成する

public SubPlaceAdapter(ArrayList<ImageModel> mImageList) { 
     this.mActivity = mActivity; 
     this.mImageList = mImageList); 
    } 

手順4.フラグメント/アクティビティでアダプタを設定します。

mSubPlaceAdapter = new SubPlaceAdapter(setImageData()); 

ステップ5 BindViewホルダーに

@Override 
public void onBindViewHolder(SubPlaceRecyclerViewHolder holder, int position) { 
ImageModel imageModel= mImageList.get(position) 
holder.subPlaceImage.setImageResource(imageModel.getImageId()); 
} 

@Override 
public int getItemCount() { 
    return mImageList.size(); 
} 

にこのコードをあなたの項目を設定し、あなたにこの答えを変更するit.Fill自由に行う方法のアイデアを与えるだろう。

+0

ありがとう、これは私が探していたものです。あなたの努力に感謝します。 –

+0

あなたは歓迎です – Dentor

+0

それは私にとって非常に役に立ちます。私の地獄多くの時間を節約します。 –

関連する問題