所以我正在创建一个联系人列表类型的应用程序,暂时只想在名称的左侧显示一个图像,我的视图的主要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)。
这些名称恰好是图片提供问题。