Android 如何从具有Recyclerview和Cardview的活动导航到另一个活动
我想在android studio中使用gridmenu制作一个应用程序。我已经做了一个设计,但是我不能用它来做一个有意图的活动。如何根据以下代码从Recyclerview和cardview中创建意图活动: playlayadapter.java: playlipfragment.java: fragment_playlist.xml: 播放列表布局 有人能帮我吗?? 多谢各位 适配器添加一个侦听器,片段实现这个侦听器Android 如何从具有Recyclerview和Cardview的活动导航到另一个活动,android,android-studio,android-layout,android-intent,Android,Android Studio,Android Layout,Android Intent,我想在android studio中使用gridmenu制作一个应用程序。我已经做了一个设计,但是我不能用它来做一个有意图的活动。如何根据以下代码从Recyclerview和cardview中创建意图活动: playlayadapter.java: playlipfragment.java: fragment_playlist.xml: 播放列表布局 有人能帮我吗?? 多谢各位 适配器添加一个侦听器,片段实现这个侦听器 public class PlaylistFragment extends
public class PlaylistFragment extends Fragment implements PlaylistAdapter.OnItemClickListener {
public PlaylistFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_playlist, container, false);
RecyclerView playlisRecyclerView = (RecyclerView)view.findViewById(R.id.your_play_list);
GridLayoutManager gridLayout = new GridLayoutManager(getActivity(), 2);
playlisRecyclerView.setLayoutManager(gridLayout);
playlisRecyclerView.setHasFixedSize(true);
PlaylistAdapter mAdapter = new PlaylistAdapter(getActivity(), getTestData());
// Set the click listener
mAdapter.setOnItemClickListener(this);
playlisRecyclerView.setAdapter(mAdapter);
return view;
}
public List<PlaylistObject> getTestData() {
List<PlaylistObject> trackList = new ArrayList<PlaylistObject>();
trackList.add(new PlaylistObject("My Account", "12 tracks", R.drawable.prf1));
trackList.add(new PlaylistObject("My Teacher", "12 tracks", R.drawable.teacher));
trackList.add(new PlaylistObject("Falling over", "12 tracks", R.drawable.album2));
trackList.add(new PlaylistObject("Falling over", "12 tracks", R.drawable.album2));
}
@Override
public void onItemClick() {
// Do what you want do
//startActivity(new Intent(getActivity(), XXXXActivity.class));
}
}
这个卡德维尤在哪里。?请显示您的布局我很抱歉,这是我的布局,所以您想在单击recyclerview中的任何项目时导航到另一个活动,对吗?是的,先生,我想导航到另一个或新的活动我想这个问题已结束,因为您的问题不清楚。请再问一次。我会回答的。答案很简单,使用相同的意图,但只需传递上下文即可开始活动。选中此复选框,如果您想了解更多详细信息,请再次提问
public class PlaylistFragment extends Fragment {
public PlaylistFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_playlist, container, false);
RecyclerView playlisRecyclerView = (RecyclerView)view.findViewById(R.id.your_play_list);
GridLayoutManager gridLayout = new GridLayoutManager(getActivity(), 2);
playlisRecyclerView.setLayoutManager(gridLayout);
playlisRecyclerView.setHasFixedSize(true);
PlaylistAdapter mAdapter = new PlaylistAdapter(getActivity(), getTestData());
playlisRecyclerView.setAdapter(mAdapter);
return view;
}
public List<PlaylistObject> getTestData() {
List<PlaylistObject> trackList = new ArrayList<PlaylistObject>();
trackList.add(new PlaylistObject("My Account", "12 tracks", R.drawable.prf1));
trackList.add(new PlaylistObject("My Teacher", "12 tracks", R.drawable.teacher));
trackList.add(new PlaylistObject("Falling over", "12 tracks", R.drawable.album2));
trackList.add(new PlaylistObject("Falling over", "12 tracks", R.drawable.album2));
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.inducesmile.androidmusicplayer
.fragment.PlaylistFragment">
<android.support.v7.widget.RecyclerView
android:id="@+id/your_play_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/_10sdp"
android:scrollbars="none" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/item_list"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_marginBottom="@dimen/_8sdp"
android:paddingLeft="@dimen/_4sdp"
android:paddingRight="@dimen/_4sdp"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/play_list_cover"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:padding="20dp"
android:src="@drawable/prf1"
android:contentDescription="@string/app_name"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
android:orientation="vertical">
<TextView
android:id="@+id/play_list_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:text="@string/profile"
android:textColor="@color/colorWhite"/>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
public class PlaylistAdapter extends RecyclerView.Adapter<PlaylistViewHolder> {
private static final String TAG = PlaylistAdapter.class.getSimpleName();
private Context context;
private List<PlaylistObject> playlists;
private OnItemClickListener mOnItemClickListener;
public PlaylistAdapter(Context context, List<PlaylistObject> playlists) {
this.context = context;
this.playlists = playlists;
}
// Set the click listener
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
}
@Override
public PlaylistViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.play_list_layout, parent, false);
return new PlaylistViewHolder(view);
}
@Override
public void onBindViewHolder(PlaylistViewHolder holder, int position) {
PlaylistObject playlistObject = playlists.get(position);
holder.playlistTitle.setText(playlistObject.getPlaylistTitle());
holder.playlistCover.setImageResource(playlistObject.getPlaylistCover());
// Whole item
holder.itemView.setOnClickListener(new View.OnClickListener {
@Override
public void onClick(View v) {
if(mOnItemClickListener != null) {
mOnItemClickListener.onItemClick();
}
}
});
// Or Title
holder.playlistTitle.setOnClickListener(new View.OnClickListener {
@Override
public void onClick(View v) {
if(mOnItemClickListener != null) {
mOnItemClickListener.onItemClick();
}
}
});
// Or Cover
holder.playlistCover.setOnClickListener(new View.OnClickListener {
@Override
public void onClick(View v) {
if(mOnItemClickListener != null) {
mOnItemClickListener.onItemClick();
}
}
});
}
@Override
public int getItemCount() {
return playlists.size();
}
// The Item click listener
public interface OnItemClickListener {
void onItemClick();
}
}
public class PlaylistFragment extends Fragment implements PlaylistAdapter.OnItemClickListener {
public PlaylistFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_playlist, container, false);
RecyclerView playlisRecyclerView = (RecyclerView)view.findViewById(R.id.your_play_list);
GridLayoutManager gridLayout = new GridLayoutManager(getActivity(), 2);
playlisRecyclerView.setLayoutManager(gridLayout);
playlisRecyclerView.setHasFixedSize(true);
PlaylistAdapter mAdapter = new PlaylistAdapter(getActivity(), getTestData());
// Set the click listener
mAdapter.setOnItemClickListener(this);
playlisRecyclerView.setAdapter(mAdapter);
return view;
}
public List<PlaylistObject> getTestData() {
List<PlaylistObject> trackList = new ArrayList<PlaylistObject>();
trackList.add(new PlaylistObject("My Account", "12 tracks", R.drawable.prf1));
trackList.add(new PlaylistObject("My Teacher", "12 tracks", R.drawable.teacher));
trackList.add(new PlaylistObject("Falling over", "12 tracks", R.drawable.album2));
trackList.add(new PlaylistObject("Falling over", "12 tracks", R.drawable.album2));
}
@Override
public void onItemClick() {
// Do what you want do
//startActivity(new Intent(getActivity(), XXXXActivity.class));
}
}