Android 卡视图在按下后不显示
我已在导航抽屉中成功实现。现在的问题是,当我在我的第一个cardview中单击时,它将带我到我的第一个片段,然后按返回,我的cardview不再在我的列表选项卡(第一个片段)中。查看CardView列表的唯一选项是再次滑动到我的导航抽屉,然后单击第一个片段以查看CardView 这是我的密码 RecycleServiceAdapter.classAndroid 卡视图在按下后不显示,android,android-fragments,android-recyclerview,fragment,android-cardview,Android,Android Fragments,Android Recyclerview,Fragment,Android Cardview,我已在导航抽屉中成功实现。现在的问题是,当我在我的第一个cardview中单击时,它将带我到我的第一个片段,然后按返回,我的cardview不再在我的列表选项卡(第一个片段)中。查看CardView列表的唯一选项是再次滑动到我的导航抽屉,然后单击第一个片段以查看CardView 这是我的密码 RecycleServiceAdapter.class package com.example.guitarista.citem.Exhibitor; import android.content.Con
package com.example.guitarista.citem.Exhibitor;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.CardView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.guitarista.citem.Gallery_SpringForward.GalleryFragment;
import com.example.guitarista.citem.Gallery_activity.GalleryActivity;
import com.example.guitarista.citem.R;
import java.util.List;
/**
* Created by smdojt on 1/24/2017.
*/
public class TabInt_RV_Adapter extends RecyclerView.Adapter<TabInt_RV_Adapter.ItemViewHolder> {
public static class ItemViewHolder extends RecyclerView.ViewHolder {
static CardView cv;
TextView itemName;
TextView itemCathegory;
ImageView itemPhoto;
ItemViewHolder(View itemView) {
super(itemView);
cv = (CardView)itemView.findViewById(R.id.cv);
itemName = (TextView) itemView.findViewById(R.id.item_name);
itemCathegory = (TextView) itemView.findViewById(R.id.item_cathegory);
itemPhoto = (ImageView) itemView.findViewById(R.id.item_photo);
}
}
List<Exhibitors_Int> items;
Context context;
TabInt_RV_Adapter(List<Exhibitors_Int> items, Context context) {
this.context = context;
this.items = items;
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
@Override
public ItemViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.fragment_exhibitor_tabint_item, viewGroup, false);
ItemViewHolder ivh = new ItemViewHolder(v);
return ivh;
}
@Override
public void onBindViewHolder(ItemViewHolder itemViewHolder, final int i) {
itemViewHolder.cv.setOnClickListener(null);
itemViewHolder.itemName.setText(items.get(i).name);
itemViewHolder.itemCathegory.setText(items.get(i).cathegory);
itemViewHolder.itemPhoto.setImageResource(items.get(i).photoId);
ItemViewHolder.cv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (i == 1) {
//Toast.makeText(context, "Index position is 1", Toast.LENGTH_SHORT).show();
Intent intent = new Intent (context, GalleryActivity.class);
context.startActivity(intent);
}
else if (i == 2) {
//Toast.makeText(context, "Index position is 2 ", Toast.LENGTH_SHORT).show();
AppCompatActivity activity = (AppCompatActivity) v.getContext();
GalleryFragment gf = new GalleryFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, gf).addToBackStack(null).commit();
}
}
});
}
@Override
public int getItemCount() {
return items.size();
}
}
我甚至会为getFragmentManager()得到一个错误强>
还有别的办法解决这个问题吗
卡片视图代码
package com.example.guitarista.citem.Exhibitor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.guitarista.citem.R;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class TabInternationalFragment extends Fragment {
private List<Exhibitors_Int> items;
private RecyclerView rv;
public TabInternationalFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_exhibitor_tab_international, container, false);
rv=(RecyclerView)v.findViewById(R.id.rv);
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
rv.setLayoutManager(llm);
//GridLayoutManager glm = new GridLayoutManager(getActivity(), 4);
//rv.setLayoutManager(glm);
rv.setHasFixedSize(true);
initializeData();
initializeAdapter();
return v;
}
private void initializeData() {
items = new ArrayList<>();
items.add(new Exhibitors_Int("A. GARCIA CRAFTS", "FURNITURE", R.drawable.image1));
items.add(new Exhibitors_Int("BALEX BOXES", "HOLIDAY DECORATION", R.drawable.image2));
items.add(new Exhibitors_Int("CAGAYAN DE ORO HANDMADE PAPER", "HOME DECOR/HOUSEWARE", R.drawable.image3));
}
private void initializeAdapter(){
TabInt_RV_Adapter adapter = new TabInt_RV_Adapter(items, getContext());
rv.setAdapter(adapter);
}
}
package com.example.guitarista.citem.Exhibitor;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入com.example.guitarista.citem.R;
导入java.util.ArrayList;
导入java.util.List;
/**
*一个简单的{@link Fragment}子类。
*/
公共类TabInternationalFragment扩展了片段{
私人清单项目;
私人回收车;
公共TabInternationalFragment(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图v=充气机。充气(R.layout.fragment\u参展商\u tab\u国际,集装箱,假);
rv=(RecyclerView)v.findViewById(R.id.rv);
LinearLayoutManager llm=新的LinearLayoutManager(getActivity());
rv.setLayoutManager(llm);
//GridLayoutManager glm=新的GridLayoutManager(getActivity(),4);
//rv.setLayoutManager(glm);
rv.setHasFixedSize(真);
初始化数据();
初始化为apter();
返回v;
}
private void initializeData(){
items=newarraylist();
增加(新参展商名称(“A.GARCIA工艺品”、“家具”,R.drawable.image1));
项目。添加(新展商名称(“打包箱”、“节日装饰”,R.drawable.image2));
增加(新参展商名称(“CAGAYAN DE ORO手工纸”,“家居装饰/家居用品”,R.drawable.image3));
}
private void initializedapter(){
TabInt_RV_Adapter Adapter=新TabInt_RV_Adapter(items,getContext());
rv.设置适配器(适配器);
}
}
如果您希望在按下后退按钮后保持第一个活动的状态,则应在AndroidManifest.xml中定义第一个活动的启动模式。还为您的第二个活动定义父活动,以便当您按下后退按钮时,Android知道应该导航回哪个活动
<activity
android:name=".activity.HomeActivity"
android:label="@string/app_name"
android:launchMode="singleTop" />
<activity
android:name=".activity.GalleryActivity"
android:label="@string/app_name"
android:parentActivityName=".activity.HomeActivity"
tools:ignore="UnusedAttribute">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.HomeActivity" />
</activity>
如果活动堆栈中已有实例,则“单顶启动”模式将确保不会创建该活动的新实例。因此,按下“后退”按钮后,您的卡仍将在第一次活动中可见。在此张贴您的片段代码库片段或用于构建这些片段的主片段?是的,您在其中显示卡的片段views@Pehlaj添加了CardView的片段代码。这与我发布的教程完全相同;初始化为apter();分段法
<activity
android:name=".activity.HomeActivity"
android:label="@string/app_name"
android:launchMode="singleTop" />
<activity
android:name=".activity.GalleryActivity"
android:label="@string/app_name"
android:parentActivityName=".activity.HomeActivity"
tools:ignore="UnusedAttribute">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.HomeActivity" />
</activity>