如何在itemviewclick上的recyclerview上进行可滑动活动

时间:2019-08-01 19:08:53

标签: android

我的问题是在回收站视图中单击每个项目,所选项目应显示在第二个屏幕中。应该滑动第二个屏幕显示所选项目,以查看列表中的下一个项目。如何实现这一目标,请给我一些想法或帮助我。

我已尝试将数据与回收站绑定,但是在单击回收站视图活动后无法使第二个活动滑动

//适配器

package com.example.myassignment.Adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.myassignment.Model.ListModel;
import com.example.myassignment.R;

import java.util.List;

public class ListViewAdaters extends RecyclerView.Adapter<ListViewAdaters.ListViewHolders> {


    private List<ListModel> itemArrayList;
    private Context mContext;
    private ItemOnClick onClickListener;

    public ListViewAdaters(List<ListModel> itemArrayList, Context mContext,ItemOnClick onClickListener) {
        this.itemArrayList = itemArrayList;
        this.mContext = mContext;
        this.onClickListener = onClickListener;
    }

    @NonNull
    @Override
    public ListViewHolders onCreateViewHolder(@NonNull ViewGroup viewGroup, int pos) {
        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_item,viewGroup,false);
        return new ListViewHolders(v);
    }

    @Override
    public void onBindViewHolder(ListViewHolders listViewHolders, int pos) {

        ListModel listModel = (ListModel) itemArrayList.get(pos);
        listViewHolders.image_veg.setImageResource(listModel.getImageDrawable());
        listViewHolders.title.setText(listModel.getTitleName());
        listViewHolders.titleDesp.setText(listModel.getTitleDesp());
        listViewHolders.textRating.setText(listModel.getRating());


    }

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

    public class ListViewHolders extends RecyclerView.ViewHolder {

        ImageView image_veg;
        TextView titleDesp, title, textRating;

        public ListViewHolders(@NonNull View itemView) {
            super(itemView);

            image_veg = (ImageView) itemView.findViewById(R.id.imageView);
            title = (TextView) itemView.findViewById(R.id.textView);
            titleDesp = (TextView) itemView.findViewById(R.id.textView2);
            textRating = (TextView) itemView.findViewById(R.id.textView3);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    onClickListener.itemClick(getAdapterPosition());
                }
            });

        }


    }

    public interface ItemOnClick {
        void itemClick(int adapterposition);
    }

}


// Activity

public class MainActivity extends AppCompatActivity implements ListViewAdaters.ItemOnClick {

    private RecyclerView mListView;
    private List<ListModel> itemList = new ArrayList<>();
    private ListViewAdaters listViewAdaters;

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

        mListView = (RecyclerView) findViewById(R.id.recycler_view);
        mListView.setLayoutManager(new LinearLayoutManager(this));
        listViewAdaters = new ListViewAdaters(itemList,this,this);
        mListView.setAdapter(listViewAdaters);

      getListData();
    }

    private void getListData() {
        itemList.add(new ListModel("Test","This is a text description",R.drawable.ic_automobile,"2.6"));
        itemList.add(new ListModel("Test1","This is a text1 description",R.drawable.ic_automobile_new,"2.4"));
        itemList.add(new ListModel("Test2","This is a text2 description",R.drawable.ic_car,"2.5"));
        itemList.add(new ListModel("Test3","This is a text3 description",R.drawable.ic_car_one,"3.0"));
        itemList.add(new ListModel("Test4","This is a text4 description",R.drawable.ic_car_two,"3.7"));
        itemList.add(new ListModel("Test5","This is a text description",R.drawable.ic_racing,"3.8"));
        itemList.add(new ListModel("Test6","This is a text1 description",R.drawable.ic_suv,"2.9"));

        listViewAdaters.notifyDataSetChanged();


    }

    @Override
    public void itemClick(int adapterposition) {

        ListModel listModel = (ListModel) itemList.get(adapterposition);
        Intent intent = new Intent(this, ListDetailsActivity.class);
        intent.putExtra("image", listModel.getImageDrawable());
        intent.putExtra("desp",listModel.getTitleDesp());
        intent.putExtra("title",listModel.getTitleName());
        startActivity(intent);


    }
}

0 个答案:

没有答案