getItem hier nicht genannt würde mein Code seiner nicht funktioniert, wenn ich Verwendung Tätigkeit bin dann richtig seine Arbeit aber in Fragmente getItem Methode nicht gonna call bitteGridview in Fragmente nicht funktioniert
helfen, dies mein Fragment ist:
public class HomeFragment extends BaseFragment{
private static final String TAG = "HomeFragment";
private GridView gvMainItems;
private HomeFragmentGridAdapter homeFragmentGridAdapter;
private ArrayList<HashMap<String, String>> arrayList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.fragment_home,container,false);
gvMainItems = (GridView) view.findViewById(R.id.gvMainItems);
arrayList = new ArrayList<>();
for(int i = 1; i < 100; i++){
HashMap<String, String> map = new HashMap<>();
map.put("item", String.valueOf(i));
arrayList.add(map);
}
homeFragmentGridAdapter = new HomeFragmentGridAdapter(getActivity(), arrayList);
gvMainItems.setAdapter(homeFragmentGridAdapter);
return view;
}
@Override
public void onClick(View view) {
}
}
Das ist mein Adapter:
public class HomeFragmentGridAdapter extends BaseAdapter {
private final Context context;
private final ArrayList<HashMap<String, String>> arrayList;
private ViewHolder holder;
public HomeFragmentGridAdapter(Context context, ArrayList<HashMap<String,String>> arrayList){
this.context = context;
this.arrayList = arrayList;
}
@Override
public int getCount() {
return arrayList.size();
}
@Override
public Object getItem(int position) {
return arrayList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View cinvertview, ViewGroup viewGroup) {
if(cinvertview == null) {
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
cinvertview = inflater.inflate(R.layout.fragment_home_grid_raw, null, true);
holder.textView = (TextView) cinvertview.findViewById(R.id.textView);
cinvertview.setTag(holder);
}else{
holder = (ViewHolder) cinvertview.getTag();
}
Log.d(TAG, "getItem: "+arrayList.get(position).get("item"));
holder.textView.setText(arrayList.get(position).get("item"));
return cinvertview;
}
public class ViewHolder{
public ImageView ivGridItem;
public TextView textView;
}
}
diese xml ist
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/content_main"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.neodocto.activity.MainActivity"
tools:showIn="@layout/app_bar_main">
<GridView android:id="@+id/gvMainItems"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="90dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp"
/>
</LinearLayout>
Dies geschieht auch, wenn Ihr HomeFragment Fragment erstreckt sich stattdessen von BaseFragment? –
ja gleich in Fragment auch –
@DharaPatel welchen fehler bekommst du? –