2016-12-24 11 views
0

Imageとテキストを持つRecyclerViewにリストを表示しようとしています。このクラスは、フラグメントクラスをTabの一部として拡張します。ここに私のコードです。drawableフォルダのフラグメント内のrecyclerviewの画像を設定するにはどうすればよいですか?

私の断片クラスです。

public class Recharges extends Fragment { 

public RecyclerView recyclerView; 
private List<GetRecharge> rechargeList = new ArrayList<>(); 
public RecyclerView.LayoutManager layoutManager; 
public Adapter adapter; 
ImageView image1, image2; 



@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

    Toolbar myToolbar = (Toolbar) getActivity().findViewById(R.id.my_toolbar); 
    ((AppCompatActivity) getActivity()).setSupportActionBar(myToolbar); 

    View rootView = inflater.inflate(R.layout.rechargelist, container, false); 


    image1 = new ImageView(getContext()); 
    image1.setImageResource(R.drawable.account); 


    recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview1); 
    recyclerView.setHasFixedSize(true); 

    adapter = (Adapter) new Adapterrecharge(rechargeList); 
    LinearLayoutManager llm = new LinearLayoutManager(getActivity()); 
    recyclerView.setLayoutManager(llm); 

    recyclerView.setItemAnimator(new DefaultItemAnimator()); 
    recyclerView.setAdapter((RecyclerView.Adapter) adapter); 

    prepareRechargeData(); 

    return rootView; 

} 

private void prepareRechargeData() { 
    GetRecharge recharge = new GetRecharge("Mad Max: Fury Road", image1); 
    rechargeList.add(recharge); 

    //recharge = new GetRecharge("Inside Out", "Animation, Kids & Family", "2015"); 
    //rechargeList.add(recharge); 


    adapter.notifyDataSetChanged(); 


} 

getterメソッドとsetterメソッドを持つモデルクラスを次に示します。

public class GetRecharge { 
private String title; 
ImageView image; 

public GetRecharge() { 
} 

public GetRecharge(String title, ImageView image) { 
    this.title = title; 
    this.image = image; 
} 

public String getTitle() { 
    return title; 
} 

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

public ImageView getImage() { 
    return image; 
} 

public void setImage(ImageView image) { 
    this.image = image; 
} 


} 

そして、これは、アダプタクラス

ここ
public class Adapterrecharge extends RecyclerView.Adapter<Adapterrecharge.MyViewHolder> { 

private List<GetRecharge> rechargeList; 

public class MyViewHolder extends RecyclerView.ViewHolder { 
    public TextView title; 
    ImageView image; 

    public MyViewHolder(View view) { 
     super(view); 
     image = (ImageView) view.findViewById(R.id.image); 
     title = (TextView) view.findViewById(R.id.title); 

    } 
} 


public Adapterrecharge(List<GetRecharge> rechargeList) { 
    this.rechargeList = rechargeList; 
} 

@Override 
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View itemView = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.rechargelist, parent, false); 

    return new MyViewHolder(itemView); 
} 

@Override 
public void onBindViewHolder(MyViewHolder holder, int position) { 
    GetRecharge recharge = rechargeList.get(position); 
    holder.title.setText(recharge.getTitle()); 
    holder.image.setImageDrawable(recharge.getImage()); 

} 

@Override 
public int getItemCount() { 
    return rechargeList.size(); 
} 
} 
+0

こちらを参照してくださいhttp://stackoverflow.com/a/34581086/

public class GetRecharge { private String title; private int imageView; public GetRecharge(String title, ImageView image) { this.title = title; this.image = image; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getImageView() { return imageView; } public void setImageView(int imageView) { this.imageView = imageView; } } 

このように使用し、これは他の人を助けるあなたのBindViewHolder

@Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.title.setText(dataList.get(position).getTitle()); holder.imageView.setImageResource(dataList.get(position).getImageView()); } 

このような希望でこれを使用することができます5202007またはhttps://codedump.io/share/MhmKfaANcWK4/1/recyclerview-in-fragment – Tauqir

答えて

0

です:ちょうど見るためLayoutParamsを設定しないImageViewオブジェクトを作成

image1 = new ImageView(getContext()); 

。ただGetRechargeR.drawable.account int型のIDを渡し、呼び出している

image1 = new ImageView(getContext()); 
image1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
LayoutParams.WRAP_CONTENT)); 
image1.setImageResource(R.drawable.account); 

別または簡単な方法:あなたはカスタムクラスでImageViewを使用しないでください holder.image.setImageResource(recharge.getImage());

+0

最初のメソッドでは、WRAP_PARENTは未解決です –

+0

@AadeshChaudhary:それは 'WRAP_PARENT'ではなく' WRAP_CONTENT'です –

+0

adapter.notifyDataSetChanged();このメソッドも動作していません –

0

としてそれを行います。あなたも

関連する問題