我们可以将自定义适配器设置为 android 片段吗(我的要求严格只需要自定义适配器而不是数组适配器)

can we set custom adapter to android fragment(My requirement Strictly needs only custom Adapter not array Adapter)

我正在尝试在片段中显示来自 Web 服务的一些数据,为此我需要使用自定义适配器,因为我正在使用 pojo class 来设置和获取数据。

我是 android 的新手,我知道 activity 的自定义适配器,但我需要片段。

我的要求是像单品xml文件一样显示singleitem.xml

<TextView
    android:layout_width="match_parent"
    android:id="@+id/txt1"
    android:textSize="30sp"
    android:gravity="center"
    android:text="ine"
    android:layout_height="wrap_content" />

<TextView
    android:layout_width="match_parent"
    android:id="@+id/txt2"
    android:textSize="30sp"
    android:gravity="center"
    android:text="ine"
    android:layout_height="wrap_content" />

<TextView
    android:layout_width="match_parent"
    android:id="@+id/txt3"
    android:textSize="30sp"
    android:gravity="center"
    android:text="ine"
    android:layout_height="wrap_content" />

<TextView
    android:layout_width="match_parent"
    android:id="@+id/txt4"
    android:textSize="30sp"
    android:gravity="center"
    android:text="ine"
    android:layout_height="wrap_content" />

我想在列表视图行中显示一些包含 4 个不同字段的数据。

而且我想要自定义适配器以将 setAdpater() 设置到我的 Listview。

是否有任何程序可以将自定义适配器添加到 Fragment 或数组适配器中,我可以使用 pojo 来分配值 class.Suggest 我。

这是我在 Activity 中使用的自定义适配器 class 任何人都可以建议适配器的可能更改 class

public class EnrollmentAdapter extends BaseAdapter {
MainActivity activity;
ArrayList<EnrollmentData> data;
LayoutInflater inflater;

public EnrollmentAdapter(MainActivity activity,ArrayList<EnrollmentData> data)
{
    inflater = LayoutInflater.from(activity);
    this.data = data;
}

@Override
public int getCount() {
    return data.size();
}

@Override
public Object getItem(int i) {
    return null;
}

@Override
public long getItemId(int i) {
    return 0;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    view = inflater.inflate(R.layout.layout_enrollmentsingleitem,null);
    TextView tv1 = (TextView)view.findViewById(R.id.txt1);
    TextView tv2 = (TextView)view.findViewById(R.id.txt2);
    TextView tv3 = (TextView)view.findViewById(R.id.txt3);
    TextView tv4 = (TextView)view.findViewById(R.id.txt4);
    tv1.setText(data.get(i).getReg_num());
    tv2.setText(data.get(i).getW_list_on());
    tv3.setText(data.get(i).getW_list_priority());
    tv4.setText(data.get(i).getElements_to_complete());
    return view;
}

我用array adapter解决了我上面的问题也满足我的要求

public class CourseCompleteAdapter extends ArrayAdapter<CourseCompletedInnerData> {
private Context context;
int  layout;
ArrayList<CourseCompletedInnerData> data;
public CourseCompleteAdapter(Context context, int layout, ArrayList<CourseCompletedInnerData> data) {
    super(context, layout,data);
    this.data = data;
    this.layout = layout;
    this.context =context;
}

@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) context.
                getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(layout, parent, false);
    }
    TextView tvScore = (TextView)convertView.findViewById(R.id.txtcoursesinnerscore);
    TextView tvActionstatus = (TextView)convertView.findViewById(R.id.txtcoursesinneractionstatus);
    tvScore.setText(data.get(position).getScore());
    tvActionstatus.setText(data.get(position).getAction_status());
     return convertView;
}

}