有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在我的回收器视图中添加图像,并在列表的每一行中添加?

我有个问题。我是Android的初学者。我有几个月的时间。 有人可以帮我在这个recyclerview列表中添加图像视图。 谢谢你,伙计

主要活动。爪哇

package com.example.customlistview;

import 安卓.content.Context;
import 安卓.os.Bundle;
import 安卓.view.View;
import 安卓.widget.Toast;

import 安卓x.appcompat.app.AppCompatActivity;
import 安卓x.recyclerview.widget.DefaultItemAnimator;
import 安卓x.recyclerview.widget.LinearLayoutManager;
import 安卓x.recyclerview.widget.RecyclerView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

   private static final String TAG="MainActivicty";
   private Context mcontext;
   ArrayList<String> titleArrayList;
   RecyclerView mRecyclerview;
    int images[] = {R.drawable.facebook, R.drawable.whatsapp, R.drawable.twitter, R.drawable.instagram, R.drawable.youtube};


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        titleArrayList=new ArrayList<String>();
        titleArrayList.add(Constants.NUMBER_SYSTEM);
        titleArrayList.add(Constants.POWER_ICDICES);
        titleArrayList.add(Constants.SIMPLIFICATION);
        titleArrayList.add(Constants.ALGEBRA);
       ;


        mcontext=MainActivity.this;
        mRecyclerview=(RecyclerView) findViewById(R.id.Recycle);
        mRecyclerview.setHasFixedSize(true);
        mRecyclerview.setItemAnimator(new DefaultItemAnimator());
        mRecyclerview.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

        TitleAdapter  adapter=new TitleAdapter(mcontext, titleArrayList, new CustomItemClickListener() {
            @Override
            public void onItemClick(View v, int i) {
                Toast.makeText(mcontext, "clicked"+titleArrayList.get(i),Toast.LENGTH_SHORT).show();

            }
        });
        mRecyclerview.setAdapter(adapter);
    }
}

滴答声。爪哇

package com.example.customlistview;


import 安卓.content.Context;
import 安卓.view.LayoutInflater;
import 安卓.view.View;
import 安卓.view.ViewGroup;
import 安卓.widget.TextView;

import 安卓x.annotation.NonNull;
import 安卓x.recyclerview.widget.RecyclerView;

import java.util.ArrayList;

public class TitleAdapter extends RecyclerView.Adapter<TitleAdapter.MyViewHolder>  {
    private Context mcontext;
    private ArrayList<String> titleList;
    private CustomItemClickListener clickListener;


    public TitleAdapter(Context mcontext, ArrayList<String> titleList, CustomItemClickListener clickListener) {
        this.mcontext = mcontext;
        this.titleList = titleList;
        this.clickListener = clickListener;

    }


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

        final View view= LayoutInflater.from(mcontext).inflate(R.layout.row,parent,false);

        final MyViewHolder viewHolder=new MyViewHolder(view);

        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clickListener.onItemClick(view,viewHolder.getPosition());
            }
        });




        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        holder.titletext.setText(titleList.get(position).replace("_"," "));
    }

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

    public  class MyViewHolder extends RecyclerView.ViewHolder{
        TextView titletext;



        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            titletext=(TextView) itemView.findViewById(R.id.textView1);

        }
    }
}

不变的。爪哇

package com.example.customlistview;

class Constants {

    static final String NUMBER_SYSTEM="NUMBER_SYSTEM(संख्या पद्धति)";
    static final String POWER_ICDICES="POWER,ICDICES & SURDS";
    static final String SIMPLIFICATION="SIMPLIFICATION(संख्या पद्धति)";
    static final String ALGEBRA="ALGEBRA(बीजगणित)";

}

CustomItemClickListener。爪哇

package com.example.customlistview;

import 安卓.view.View;

public interface CustomItemClickListener {

    public void onItemClick(View v,int i);
}

这是我的一排。xml

<?xml version="1.0" encoding="utf-8"?>
<安卓x.cardview.widget.CardView xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
    安卓:layout_width="match_parent"
    安卓:layout_height="wrap_content"
    xmlns:app="http://schemas.安卓.com/apk/res-auto"
    app:contentPadding="5dp"
    app:cardElevation="3dp"
    app:cardCornerRadius="10dp"
    app:cardUseCompatPadding="true"
    app:cardBackgroundColor="@color/whiteColor"
    >

    <LinearLayout
        安卓:layout_width="match_parent"
        安卓:layout_height="wrap_content"
        安卓:orientation="horizontal"
        安卓:padding="10dp">

        <ImageView
            安卓:id="@+id/image"
            安卓:layout_width="40dp"
            安卓:layout_height="40dp"
            安卓:src="@drawable/whatsapp" />

        <LinearLayout
            安卓:layout_width="match_parent"
            安卓:layout_height="wrap_content"
            安卓:layout_marginStart="5dp"
            安卓:orientation="vertical"
            安卓:layout_marginLeft="5dp">

            <TextView
                安卓:id="@+id/textView1"
                安卓:layout_width="match_parent"
                安卓:layout_height="wrap_content"
                安卓:layout_margin="2dp"


                安卓:text="@string/main_title"

                安卓:textColor="@color/blackColor"
                安卓:textSize="15sp"
                安卓:textStyle="bold" />


        </LinearLayout>

    </LinearLayout>

</安卓x.cardview.widget.CardView>

帮帮我// 在列表视图中添加imageview。 多谢各位


共 (1) 个答案

  1. # 1 楼答案

    我遇到了一个类似的问题,并成功地解决了它。现在我可以给你我的密码了。我想这会对你有帮助

    ListAdapter。爪哇

    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import androidx.recyclerview.widget.RecyclerView;
    
    import com.example.geometry.R;
    
    import java.util.List;
    
    public class ListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    
        private List<ItemAdapter> mList;
        private Context mContext;
        public ListAdapter(List<ItemAdapter> list, Context context){
            super();
            mList = list;
            mContext = context;
        }
        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int i) {
            View v = LayoutInflater.from(mContext).inflate(R.layout.item_custom, parent, false);
    
            final ViewHolder viewHolder = new ViewHolder(v);
    
            viewHolder.mImg.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(v.getContext(), "Input mode = " + viewHolder.getAdapterPosition(), Toast.LENGTH_SHORT).show();
                    Builder.mode = viewHolder.getAdapterPosition();
                }
            });
    
            return viewHolder;
        }
    
        @Override
        public void onBindViewHolder( RecyclerView.ViewHolder viewHolder, int position) {
            ItemAdapter itemAdapter = mList.get(position);
            ((ViewHolder) viewHolder).mImg.setImageResource(itemAdapter.getImage());
        }
    
        @Override
        public int getItemCount() {
            return mList.size();
        }
    
        class ViewHolder extends RecyclerView.ViewHolder{
    
            public TextView mTv_name;
            public ImageView mImg;
            public ViewHolder(View itemView) {
    
                super(itemView);
                mImg = (ImageView) itemView.findViewById(R.id.img_item);
    
            }
        }
    }
    

    项目适配器。爪哇

    public class ItemAdapter {
        private int image;
    
        public int getImage() {
            return image;
        }
    
        public void setImage(int image) {
            this.image = image;
        }
    }
    

    主要活动。爪哇

    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.ListView;
    import android.widget.RelativeLayout;
    
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.recyclerview.widget.LinearLayoutManager;
    import androidx.recyclerview.widget.RecyclerView;
    
    import com.example.geometry.GUI.Builder;
    import com.example.geometry.GUI.ItemAdapter;
    import com.example.geometry.GUI.ListAdapter;
    import com.example.geometry.Output.SolveActivity;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        private RecyclerView mRecycleView;
        private List<ItemAdapter> mList = new ArrayList<>();
        private ListAdapter mAdapter;
        ListView listView;
        RelativeLayout layout;
    
        ImageButton solve_button;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            init();
            addList();
            adapter();
        }
    
        private void init(){
            setContentView(R.layout.activity_main);
            layout = new RelativeLayout(this);
            mRecycleView = findViewById(R.id.recycler_view);//new RecyclerView(this);
    
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                    RelativeLayout.LayoutParams.WRAP_CONTENT);
            params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
            mRecycleView.setLayoutParams(params);
        }
        private void addList(){
            ItemAdapter itemAdapter = new ItemAdapter();
            itemAdapter.setImage(R.drawable.circle);
            mList.add(itemAdapter);
    
            itemAdapter = new ItemAdapter();
            itemAdapter.setImage(R.drawable.line);
            mList.add(itemAdapter);
    
            itemAdapter = new ItemAdapter();
            itemAdapter.setImage(R.drawable.move);
            mList.add(itemAdapter);
    
            itemAdapter = new ItemAdapter();
            itemAdapter.setImage(R.drawable.angle);
            mList.add(itemAdapter);
    
            itemAdapter = new ItemAdapter();
            itemAdapter.setImage(R.drawable.regular_triangle);
            mList.add(itemAdapter);
    
            itemAdapter = new ItemAdapter();
            itemAdapter.setImage(R.drawable.right_triangle);
            mList.add(itemAdapter);
    
            itemAdapter = new ItemAdapter();
            itemAdapter.setImage(R.drawable.square);
            mList.add(itemAdapter);
    
            itemAdapter = new ItemAdapter();
            itemAdapter.setImage(R.drawable.trapeze);
            mList.add(itemAdapter);
        }
    
        private void adapter(){
            mAdapter = new ListAdapter(mList, this);
            mRecycleView.setAdapter(mAdapter);
            mRecycleView.setLayoutManager(new LinearLayoutManager(this, RecyclerView.HORIZONTAL, false));
            mAdapter.notifyDataSetChanged();
    
        }
    
    
    }
    

    主要活动。xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <ImageButton
            android:id="@+id/solve_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_margin="30dp"
            android:background="@drawable/ic_calculator" />
    
        <com.example.geometry.GUI.Builder
            android:id="@+id/builder"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/recycler_view"
            />
    
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
        />
    
        <EditText
            android:id="@+id/editText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="Name" />
    
    </RelativeLayout>
    

    物品_定制。爪哇

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_margin="2dp"
        android:background="#fff"
        android:layout_height="wrap_content">
        android:layout_gravity="center"
        android:scaleType="center">
        <ImageView
            android:id="@+id/img_item"
            android:layout_width="wrap_content"
            android:contentDescription="@string/app_name"
            android:layout_height="wrap_content" 
            android:layout_gravity="center"
            android:scaleType="center"
            android:layout_centerInParent="true"/>
    
    
    </RelativeLayout>