如何解决使用适配器-Android Studio 4.2 在片段内实现网格视图 片段布局页面片段java代码适配器
尝试使用适配器在片段内实现网格视图
The app keeps crashing when the activity containing this fragment is selected. 我认为问题出在这一行。
MainAdapter adapter = new MainAdapter(getContext(),number,numberimage);
我是使用片段的新手。 当我在活动中尝试使用相同的适配器时,它起作用了。 在这里而不是使用 getContext 我应该使用什么?
参考代码
片段布局页面
<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=".VisionFragment">
<GridView
android:id="@+id/gv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="2"/>
片段java代码
public class VisionFragment extends Fragment {
GridView gridView;
String[] number = {"ONE","TWO","THREE","FOUR","FIVE","SIX"};
int[] numberimage = {R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.four,R.drawable.five,R.drawable.six};
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_vision,container,false);
gridView=view.findViewById(R.id.gv);
MainAdapter adapter = new MainAdapter(getContext(),numberimage);
gridView.setAdapter(adapter);
return view;
}
}
适配器
public class MainAdapter extends BaseAdapter {
private Context context;
private LayoutInflater inflater;
private String[] number;
private int[]numberimage;
public MainAdapter(Context c,String[] number,int[] numberimage){
context = c;
this.number = number;
this.numberimage = numberimage;
}
@Override
public int getCount() {
return number.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position,View convertView,ViewGroup parent) {
if (inflater == null){
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
if (convertView == null){
convertView = inflater.inflate(R.layout.row_item,null);
}
ImageView imageView = convertView.findViewById(R.id.image_view);
TextView textView = convertView.findViewById(R.id.text_view);
imageView.setimageResource(numberimage[position]);
textView.setText(number[position]);
return convertView;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。