Mein Problem ist, wenn ich RecyclerView
in Fragment
von NavigationDrawer
und Elementen (Arrays) anrufen mag, dass ich anrufen über RecyclerView
nicht genannt, aber wenn ich nicht in Fragment
platziere es könnte genannt . Also hier ist mein Code.Android - Aufruf RecyclerView in Fragmente der Navigationsleiste
Hier ist meine Fragment.java
und es sagt, Fehler auf recyclerView.setLayoutManager(layoutManager);
public class fragment_1bakso extends Fragment {
private AppCompatActivity compat;
private RecyclerView recyclerView;
private MakananAdapter adapter;
public fragment_1bakso() {
// Required empty public constructor
}
ArrayList<Makanan> mList = new ArrayList<>();
MakananAdapter mAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
/*View v = inflater.inflate(R.layout.fragment_1bakso, container, false);
return v;*/
View rootview = inflater.inflate(R.layout.activity_calling, container, false);
return rootview;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//mClass.setContentView(R.layout.activity_calling);
//return new fragment_1bakso(R.layout.activity_calling, this);
GridLayoutManager layoutManager = new GridLayoutManager(getActivity(), 2, GridLayoutManager.HORIZONTAL, false);
recyclerView.setLayoutManager(layoutManager);
mAdapter = new MakananAdapter(mList);
recyclerView.setAdapter(mAdapter);
fillData();
}
private void fillData() {
Resources resources = getResources();
String [] arJudul = resources.getStringArray(R.array.bakso);
String [] arHarga = resources.getStringArray(R.array.bakso_price);
String [] arDeskripsi = resources.getStringArray(R.array.bakso_desc);
String [] arLokasi = resources.getStringArray(R.array.bakso_locations);
String [] arDetail = resources.getStringArray(R.array.bakso_details);
TypedArray a = resources.obtainTypedArray(R.array.bakso_pict);
Drawable[] arFoto = new Drawable[a.length()];
for (int i = 0; i < arFoto.length; i++)
{
arFoto[i] = a.getDrawable(i);
}
a.recycle();
for (int i = 0; i < arJudul.length; i++)
{
mList.add(new Makanan(arJudul[i],arHarga[i],arFoto[i],arDeskripsi[i],arDetail[i],arLokasi[i]));
}
mAdapter.notifyDataSetChanged();
}}
Hier ist mein Fragment.xml
<FrameLayout 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"
tools:context="id.sch.smktelkom_mlg.learn.sideview.fragment_1bakso">
<!-- TODO: Update blank fragment layout -->
<include
layout="@layout/activity_calling"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
Hier ist meine Activity_calling.xml
, die das Element in Array verwendet zu nennen (RecyclerView)
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:scrollbars="vertical"
tools:context="id.sch.smktelkom_mlg.learn.sideview.activity_1bakso" />
Helfen Sie mir Jungs, danke in Advanc e.
versuchen GridLayoutManager mit LinearLayoutManager Ändern –
Code von 'onCreate()' auf 'onViewCreated()' –