【发布时间】:2017-08-17 22:27:24
【问题描述】:
我创建了一个包含四张卡片的卡片布局。
public class four_future extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
public four_future() {
// Required empty public constructor
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RecyclerView recyclerView = (RecyclerView) inflater.inflate(
R.layout.recycler_view, container, false);
ContentAdapter adapter = new ContentAdapter(recyclerView.getContext());
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return recyclerView;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView picture;
public TextView name;
public TextView description;
public ViewHolder(LayoutInflater inflater, ViewGroup parent) {
super(inflater.inflate(R.layout.four_future, parent, false));
picture = (ImageView) itemView.findViewById(R.id.card_image);
name = (TextView) itemView.findViewById(R.id.card_title);
description = (TextView) itemView.findViewById(R.id.card_text);
// Adding Snackbar to Action Button inside card
Button button = (Button)itemView.findViewById(R.id.action_button);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Snackbar.make(v, "Action is pressed",
Snackbar.LENGTH_LONG).show();
}
});
}
}
/**
* Adapter to display recycler view.
*/
public static class ContentAdapter extends RecyclerView.Adapter<ViewHolder> {
// Set numbers of List in RecyclerView.
private static final int LENGTH = 3
;
private final String[] mPrograms;
private final Drawable[] mProgramPictures;
public ContentAdapter(Context context) {
Resources resources = context.getResources();
mPrograms = resources.getStringArray(R.array.programs);
TypedArray a = resources.obtainTypedArray(R.array.program_picture);
mProgramPictures = new Drawable[a.length()];
for (int i = 0; i < mProgramPictures.length; i++) {
mProgramPictures[i] = a.getDrawable(i);
}
a.recycle();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(parent.getContext()), parent);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.picture.setImageDrawable(mProgramPictures[position % mProgramPictures.length]);
holder.name.setText(mPrograms[position % mPrograms.length]);
}
@Override
public int getItemCount() {
return LENGTH;
}
}
}
我在每张卡片上都有操作按钮。如何在点击不同卡片上的操作按钮时打开不同的活动。截至目前,每个操作按钮都只是提供一个小吃店。如果我单击第一张卡片上的操作按钮,它必须打开 first_activity.xml。我怎样才能做到这一点?
【问题讨论】:
标签: android android-layout android-fragments material-design cardlayout