Java 家庭碎片问题。这是如何解决的
FragmentHome中存在问题。在Activity中,它接受ActivityName。但在fragment中,它显示问题我已尝试getContext,getActivity显示错误我未将值传递给recycle视图Java 家庭碎片问题。这是如何解决的,java,android,Java,Android,FragmentHome中存在问题。在Activity中,它接受ActivityName。但在fragment中,它显示问题我已尝试getContext,getActivity显示错误我未将值传递给recycle视图 public class FragmentHome extends Fragment { private Fragment homefragment; public static final String BASE_URL = "http://10.0.2.2:3
public class FragmentHome extends Fragment {
private Fragment homefragment;
public static final String BASE_URL = "http://10.0.2.2:3000";
// product layout ....
private RecyclerView recyclerView;
//List<Product> productList = new ArrayList<>();
public FragmentHome() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home, container, false);
//prouct view..code ...
recyclerView = view.findViewById(R.id.showProducts);
//making method for getting all products ...
getAllProducts();
return view;
}
private void getAllProducts(){
Register register = ApiUrl.getInstance().create(Register.class);
Call<List<Product>> productlist = register.getProducts(ApiUrl.session);
productlist.enqueue(new Callback<List<Product>>() {
@Override
public void onResponse(Call<List<Product>> call, Response<List<Product>> response) {
if (!response.isSuccessful()) {
Toast.makeText(getActivity(), "Code " + response.code(), Toast.LENGTH_SHORT).show();
return;
}
List<Product> productList = response.body();
//Pass List to the Adapter class
ProductAaptor productAaptor = new ProductAaptor(productList, FragmentHome.this);
recyclerView.setAdapter(productAaptor);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
}
@Override
public void onFailure(Call<List<Product>> call, Throwable t) {
Toast.makeText(getContext(), "Error : " + t.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
});
}
公共类FragmentHome扩展了Fragment{
私有片段;
公共静态最终字符串BASE_URL=”http://10.0.2.2:3000";
//产品布局。。。。
私人回收站;
//List productList=new ArrayList();
公共家庭(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.fragment\u home,container,false);
//产品视图..代码。。。
recyclerView=view.findViewById(R.id.showProducts);
//获取所有产品的制作方法。。。
getAllProducts();
返回视图;
}
私有void getAllProducts(){
Register Register=apirl.getInstance().create(Register.class);
调用productlist=register.getProducts(apirl.session);
productlist.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
如果(!response.issusccessful()){
Toast.makeText(getActivity(),“Code”+response.Code(),Toast.LENGTH\u SHORT.show();
返回;
}
List productList=response.body();
//将列表传递给适配器类
ProductAaptor ProductAaptor=newproductaaptor(productList,FragmentHome.this);
recyclerView.setAdapter(productAaptor);
setLayoutManager(新的LinearLayoutManager(getContext());
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(getContext(),“Error:+t.getLocalizedMessage(),Toast.LENGTH_SHORT).show();
}
});
}
[基本答案取自您可以使用
onAttach()
方法访问片段的上下文
private Context mContext;
public FragmentHome() {
// Required empty public constructor
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext=context;
}
然后,您可以使用
mContext
参数访问片段的上下文。欢迎使用堆栈溢出。您的实际问题是什么?什么不起作用?您期望什么?那么,问题是什么?代码没有编译?您的应用程序正在崩溃?您需要输入更多信息这样做可以实现什么?我希望这样做FragmentHome。此
应返回当前的FragmentHome
对象。这是您想要的吗?