0

私はフラグメントのWebサービスからデータを表示しようとしています。データを設定して取得する。私たちはカスタムアダプタをアンドロイドのフラグメントに設定できますか(私の要件厳密にはカスタムアダプタは配列アダプタではない)

iam new androidと私はカスタムアダプターを知っていますが、私はフラグメントが必要です。

私の要件は、私がリストビューの行の4つの異なるフィールドが含まれているいくつかのデータを表示したい

<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" /> 

singleitem.xml単品のXMLファイルのように表示することです。

そして、カスタムアダプターをsetAdpater()をListviewに追加します。

FragmentまたはArrayアダプタにカスタムアダプタを追加する手順はありますか。私はpojo class.Suggestを使用して値を割り当てることができます。

この

も私の要件を満たしている誰もが

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

「カスタムアダプターをアンドロイドフラグメントに設定できますか?」というように、アクティビティのようなフラグメントは直接「アダプタ」を使用しません。 'ListView'のような' AdapterView'は 'Adapter'を使います。その「AdapterView」は、アクティビティまたはフラグメントのいずれかによって管理することができる。なぜあなたの 'ListView'がフラグメントに表示されているので、' EnrollmentAdapter'を変更する必要がありますか? – CommonsWare

答えて

0

私は、アレイアダプタを使用することによって、私の上記の質問を解決することができるアダプタクラスのための可能な変更を提案することができ活動 で使用してカスタムアダプタクラスIAMある

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

関連する問題