风棘子 2020-04-16 16:10
浏览 448

点击RecyclerView瀑布流布局中的图片item跳转到下一个activity

图片说明

这是activity

package com.example.listview.Menu;

import android.content.Intent;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import com.example.listview.R;
import com.example.listview.Menu.MenuActivity;
import com.example.listview.Pay.PayActivity;
import com.example.listview.Menu.MenuAdapter;
import com.example.listview.table.TMenu;
import com.example.listview.Windows;
import org.litepal.crud.DataSupport;
import java.util.ArrayList;
import java.util.List;

public class MenuActivity extends AppCompatActivity {

    private MenuAdapter menuAdapter;
    private RecyclerView mRv;
    //private OnItemClickListener mOnItemClickListener;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu_activity);
        ActionBar actionBar=getSupportActionBar();
        if(actionBar!=null){
            actionBar.hide();
        }
        initMenus();//初始化数据
        RecyclerView recyclerView=(RecyclerView) findViewById(R.id.rv);
        StaggeredGridLayoutManager layoutManager=new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);//P128瀑布流布局
        recyclerView.setLayoutManager(layoutManager);
        MenuAdapter madapter=new MenuAdapter(menuList);
        recyclerView.setAdapter(madapter);

        madapter.setOnItemClick(new MenuAdapter.OnItemClickListener() {
            @Override
            public void OnItemClick(View v, int position, String id) {
                Intent intent = new Intent(MenuActivity.this, PayActivity.class);
               /*传ID在Main2Activity接受*/
               /* intent.putExtra("id",id);*/
                startActivity(intent);
            }
        });
        /*adapter.setOnItemClickListener(new MenuAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(View view, int position) {
                //String masterPic = show.getResult().get(position).getMasterPic();
                //String name = show.getResult().get(position).getCommodityName();
                //String price =show.getResult().get(position).getPrice();
                Intent intent = new Intent(MenuActivity.this, PayActivity.class);
                //intent.putExtra("cid",masterPic);
                //intent.putExtra("name",name);
                //intent.putExtra("price",price);
                startActivity(intent);
            }
        });*/
    }

    private List<Menu> menuList =new ArrayList<>();
    private void initMenus() {
        List<TMenu> menus = DataSupport.select("name", "price","store","foodid","picture").find(TMenu.class);
        for (TMenu menu : menus) {
            int resID = getResources().getIdentifier(menu.getPicture(), "drawable", "com.example.listview");
            Menu canteen=new Menu(menu.getName(),resID);
            menuList.add(canteen);
        }
    }
}

这是Adapter

package com.example.listview.Menu;

/**
 * Created by Administrator on 2019/4/3 0003.
 */

import android.content.Context;
import android.content.Intent;
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 android.widget.Toast;

import com.example.listview.R;
import com.example.listview.Pay.PayActivity;
import com.example.listview.Menu.Menu;
import com.example.listview.Menu.MenuAdapter;

import java.util.List;

/**
 * Created by Administrator on 2019/2/8 0008.
 */

public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.ViewHolder>{
    private List<Menu> mMenuList;
    private Context mcontext;
    private OnItemClickListener mOnItemClickListener;
    OnItemClickListener listener;

    public interface OnItemClickListener {
        public void onItemClick(View v, int position);
    }

    public void setOnItemClick(OnItemClickListener listener) {
        this.listener=listener;
    }
    static class ViewHolder extends RecyclerView.ViewHolder {
        View fruitView;
        ImageView fruitImage;
        TextView fruitName;
        public ViewHolder(View view) {
            super(view);
            fruitView = view;
            fruitImage = (ImageView) view.findViewById(R.id.fruit_image);
            fruitName = (TextView) view.findViewById(R.id.fruit_name);
        }
    }
    public MenuAdapter(List<Menu> menuList) {
        mMenuList = menuList;
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.menu_item, parent, false);
        final ViewHolder holder = new ViewHolder(view);
        holder.fruitView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                int position = holder.getAdapterPosition();
                Menu menu = mMenuList.get(position);
                //Intent intent=new Intent(MenuActivity.this,PayActivity.class);
                //startActivity(intent);
                Toast.makeText(v.getContext(), "you clicked view" + menu.getName(), Toast.LENGTH_SHORT).show();
            }
        });
        holder.fruitImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //mOnItemClickListener.onItemClick(v, position);
                //Intent intent=new Intent();
                //Intent intent=new Intent(Context,PayActivity.class);
                //intent.putExtra("friend",msg.getFriend().toString());
                //Context.startActivity(intent);
                //int position = holder.getAdapterPosition();
                //Menu menu = mMenuList.get(position);
                //Toast.makeText(v.getContext(), "you clicked image" + menu.getName(), Toast.LENGTH_SHORT).show();
            }
        });
        return holder;
    }
    @Override
    public void onBindViewHolder(ViewHolder holder,int position){
        Menu menu = mMenuList.get(position);
        holder.fruitImage.setImageResource(menu.getImageId());
        holder.fruitName.setText(menu.getName());
        holder.fruitImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(listener!=null){
                    /*注意参数*/
                    listener.OnItemClick(v,position);
                }
            }
        });
    }
        @Override
    public int getItemCount(){
        return mMenuList.size();
    }
}






  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 ROS Turtlebot3 多机协同自主探索环境时遇到的多机任务分配问题,explore节点
    • ¥15 Matlab怎么求解含参的二重积分?
    • ¥15 苹果手机突然连不上wifi了?
    • ¥15 cgictest.cgi文件无法访问
    • ¥20 删除和修改功能无法调用
    • ¥15 kafka topic 所有分副本数修改
    • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
    • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
    • ¥40 串口调试助手打开串口后,keil5的代码就停止了
    • ¥15 电脑最近经常蓝屏,求大家看看哪的问题