简体   繁体   English

使用Cardview详细信息启动另一个活动

[英]Launch another activity with cardview details

I want to throw Launch another activity with cardview details 我想抛出带有cardview详细信息的另一个活动

在此处输入图片说明

this tutorial http://androidbash.com/connecting-android-app-to-a-database-using-php-and-mysql/ 本教程http://androidbash.com/connecting-android-app-to-a-database-using-php-and-mysql/

public class MoviesAdapter extends RecyclerView.Adapter { 公共类MoviesAdapter扩展了RecyclerView.Adapter {

private Context context;
private List<Movie> movies;

public MoviesAdapter(Context context, List<Movie> movies) {
    this.context = context;
    this.movies = movies;
}

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

    View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.card,parent,false);

    return new ViewHolder(itemView);
}

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {

    holder.movieName.setText(movies.get(position).getMovieName());
    holder.movieGenre.setText(movies.get(position).getMovieGenre());
    Glide.with(context).load(movies.get(position).getImageLink()).into(holder.imageView);
}



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

public  class ViewHolder extends  RecyclerView.ViewHolder implements View.OnClickListener{

    public TextView movieName;
    public TextView movieGenre;
    public ImageView imageView;

    public ViewHolder(View itemView) {
        super(itemView);
        movieName = (TextView) itemView.findViewById(R.id.moviename);
        imageView = (ImageView) itemView.findViewById(R.id.image);
        movieGenre = (TextView) itemView.findViewById(R.id.genre);
        imageView.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        int position = getAdapterPosition();
        showPopupMenu(v,position);
    }
}

private void showPopupMenu(View view, int poaition) {
    PopupMenu popup = new PopupMenu(context, view);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.menu_context, popup.getMenu());
    popup.setOnMenuItemClickListener(new MenuClickListener(poaition));
    popup.show();
}


class MenuClickListener implements PopupMenu.OnMenuItemClickListener {
    Integer pos;
    public MenuClickListener(int pos) {
        this.pos=pos;
    }

    @Override
    public boolean onMenuItemClick(MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case R.id.action_favourite:
                Toast.makeText(context, movies.get(pos).getMovieName()+" is added to favourite", Toast.LENGTH_SHORT).show();
                return true;
            case R.id.action_watch:
                Toast.makeText(context, movies.get(pos).getMovieName()+" is added to watchlist", Toast.LENGTH_SHORT).show();
                return true;
            case R.id.action_book:
                Toast.makeText(context, "Booked Ticket for "+movies.get(pos).getMovieName(), Toast.LENGTH_SHORT).show();
                return true;



            default:
        }
        return false;
    }
}

} }

Must read: https://developer.android.com/training/basics/firstapp/starting-activity.html 必须阅读: https : //developer.android.com/training/basics/firstapp/starting-activity.html

When you click on a card take the data bound to this card and put it to the intent: 当您单击卡时,请获取与此卡绑定的数据,然后将其放到意图中:

@Override
public void onClick(View v) {
    int position = getAdapterPosition();
    showPopupMenu(v,position);

    Movie movie = movies.get(position);
    Intent intent = new Intent(v.getContext(), MovieActivity.class);
    intent.putExtraSerializable(MOVIE_KEY, movie);
    v.getContext().startActivity(intent);
}

To make this work adjust your Movie class: 为了使这项工作调整您的电影课:

class Movie implements Serializable {// your fields and methods}

Then in MovieActivity onCreate: 然后在MovieActivity onCreate中:

Movie movie = (Movie) getIntent().getSerializableExtra(MOVIE_KEY);

Using this instance you can populate your view with a data. 使用此实例,您可以用数据填充视图。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM