在循环器视图中显示图像,android studio

时间:2018-04-01 19:29:36

标签: java android

所以我正在创建一个联系人列表类型的应用程序,暂时只想在名称的左侧显示一个图像,我的视图的主要xml是这个。我知道代码很大,然而所有名称部分都正确显示,我只想修复未显示的图像。

<ImageView
    android:id="@+id/img"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginEnd="326dp"
    android:layout_marginRight="326dp"
    android:padding="4dp"
    android:src="@drawable/android" />

<TextView
    android:id="@+id/c_name"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_toRightOf="@+id/img"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="57dp"
    android:layout_marginStart="57dp"
    android:gravity="left"
    android:text="Contact Name"
    android:textSize="25dp" />

适配器类是这个

public class ContactAdapter扩展了RecyclerView.Adapter {

private ArrayList<ContactProvider> arrayList = new ArrayList<ContactProvider>();

public ContactAdapter(ArrayList<ContactProvider> arrayList){
    this.arrayList = arrayList;
}

@NonNull
@Override
public RecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout,parent,false);

    RecyclerViewHolder recyclerViewHolder = new RecyclerViewHolder(view);
    return recyclerViewHolder;
}

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

    ContactProvider contactProvider = arrayList.get(position);
    holder.imageView.setImageResource(contactProvider.getImg_res());
    holder.c_name.setText(contactProvider.getC_name());
}

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

public static class RecyclerViewHolder extends RecyclerView.ViewHolder{
    TextView c_name;
    ImageView imageView;

    public RecyclerViewHolder(View view){
        super(view);
        imageView = (ImageView)view.findViewById(R.id.img);
        c_name=(TextView)view.findViewById(R.id.c_name);
    }
}

}

最后我的mainactivity.java

RecyclerView recyclerView;
RecyclerView.Adapter adapter;
RecyclerView.LayoutManager layoutManager;

String[] c_name;
int[] Img_res = {R.drawable.android};
ArrayList<ContactProvider> arrayList = new ArrayList<ContactProvider>();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView= (RecyclerView)findViewById(R.id.recycler_view);
    c_name = getResources().getStringArray(R.array.Contact_name);
    int i = 0;

    for (String name: c_name )
    {
        ContactProvider contactProvider = new ContactProvider(Img_res[0],name);
        arrayList.add(contactProvider);
        i++;
    }
    adapter = new ContactAdapter(arrayList);
    recyclerView.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setAdapter(adapter);

}

我要添加的图片我保留在drawable(android.jpg)。

这些名称恰好是图片提供问题。

0 个答案:

没有答案