首页 > 解决方案 > 使用 CardView + RecyclerView 的 ListView 不起作用

问题描述

我是 android 新手,在这里我尝试使用 RecyclerView 和 Cardview 绑定 ListView。在我的情况下,我没有收到任何错误,但我无法获取 ListView 项目。

这是我的适配器类

RecyclerviewAdapter_list.java

public class RecyclerviewAdapter_list extends RecyclerView.Adapter<RecyclerviewAdapter_list.MyViewHolder> {

    private Context mContext;
    private List<myAlarms> myAlarmsdata;

    public RecyclerviewAdapter_list(Context mContext, List<myAlarms>myAlarms){
        this.mContext = mContext;
        this.myAlarmsdata =myAlarms;
    }
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view;
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        view = inflater.inflate(R.layout.cardview_alarm, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        myAlarms myAlarms =myAlarmsdata.get(position);
        holder.mTime.setText(myAlarmsdata.get(position).getALARM_TIME());
        holder.mTitle.setText(myAlarmsdata.get(position).getALARM_TITLE());

    }

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

    public class MyViewHolder extends RecyclerView.ViewHolder {
        TextView mTime,mTitle,mAmPm;
        SwitchButton mbtn;
        public MyViewHolder(View itemView) {
            super(itemView);

            mTime = (TextView) itemView.findViewById(R.id.mTime);
          //  mAmPm = (TextView) itemView.findViewById(R.id.mAmPm);
            mTitle = (TextView) itemView.findViewById(R.id.mTitle);
          //  mbtn = (SwitchButton) itemView.findViewById(R.id.mTime);

        }
    }
}

报警活动.java

public class AlarmActivity extends Activity {

    private ImageView mAddIcon;
    List<myAlarms>myAlarms;
    RecyclerView recyclerView;
    Database_Helper database_helper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_alarm);
        Utils.darkenStatusBar(this, R.color.StatusbarColor);

        database_helper = new Database_Helper(this);
        mAddIcon = (ImageView) findViewById(R.id.mAddIcon);
        myAlarms = new ArrayList<>();

        recyclerView=(RecyclerView)findViewById(R.id.mRecyclerView_id);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        RecyclerviewAdapter_list recyclerviewAdapter_list =new RecyclerviewAdapter_list(this,myAlarms);
        recyclerView.setAdapter(recyclerviewAdapter_list);



        mAddIcon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                List<myAlarms> myAlarms = database_helper.getMyAlarms();
                Intent intent = new Intent(AlarmActivity.this, CreateAlarm.class);
                startActivity(intent);
                overridePendingTransition(R.anim.slide_up, R.anim.slide_out);
            }
        });
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
    }
}

谁能告诉我我需要在哪里进行更改以及我在哪里做错了。谢谢。

标签: androidandroid-recyclerviewandroid-cardview

解决方案


你把这段代码放在你的项目中

//当你想要水平 layoutManager.setOrientation(context,LinearLayoutManager.HORIZONTAL,false);

//当你想要垂直 layoutManager.setOrientation(context,LinearLayoutManager.VERTICAL,false);


推荐阅读