java片段不工作并且有错误
让应用程序从服务器获取图像和文本,然后在卡片视图中显示 还有另一个应用程序,它有不同的标签,哪个标签是从Fragment扩展而来的
因此,在片段中粘贴第一个应用程序中的我的主要活动代码,但有错误:
public class news extends Fragment {
private RecyclerView recyclerView;
private ArrayList<Deatails> data;
private DataAdapter adapter;
private View myFragmentView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myFragmentView= inflater.inflate(R.layout.news, container, false);
initViews();
return myFragmentView;
}
private void initViews() {
recyclerView = (RecyclerView)myFragmentView.findViewById(R.id.card_recycler_view);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
loadJSON();
}
private void loadJSON() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://memaraneha.ir/")
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestInterface request = retrofit.create(RequestInterface.class);
Call<JSONResponse> call = request.getJSON();
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.show();
call.enqueue(new Callback<JSONResponse>() {
@Override
public void onResponse(Call<JSONResponse> call, Response<JSONResponse> response) {
progressDialog.dismiss();
JSONResponse jsonResponse = response.body();
data = new ArrayList<>(Arrays.asList(jsonResponse.getAndroid()));
adapter = new DataAdapter(MainActivity.this, data);
recyclerView.setAdapter(adapter);
}
@Override
public void onFailure(Call<JSONResponse> call, Throwable t) {
progressDialog.dismiss();
Log.d("Error", t.getMessage());
}
});
}
}
这是我的错误:
,
,
# 1 楼答案
您应该在
Fragment
中使用指向View
的链接内部片段
不能只是将粘贴代码从活动复制到片段中。 您需要从片段视图启动findViewById
不能在片段的
OnCreateView
方法之前运行init方法# 2 楼答案
我解决了我的问题,因此它为人们提供了正确的代码:
# 3 楼答案
当您使用fragment时,必须重写它的
onCreateView
方法例如: