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

时间:2017-08-17 16:26:21

标签: java android android-fragments android-arrayadapter custom-adapter

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

我是Android新手,我知道自定义适配器活动,但我需要片段。

我的要求是显示单项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" />

我想显示一些包含listview行中4个不同字段的数据。

我希望自定义适配器将setAdpater()添加到我的Listview。

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

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

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;
}

1 个答案:

答案 0 :(得分:0)

我可以通过使用数组适配器来解决我的上述问题也符合我的要求

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;
}

}