0

1番目のフラグメントのリストビューから2番目のフラグメントのリストビューにアイテムを移動する方法を知っておく必要があります。フラグメント、およびリスト項目のビューを含むxmlファイルです。 AbsentStudentFragment.java1番目のフラグメントの1つのリストビューから2番目のフラグメントの別のリストビューへユーザがクリック/スワイプしたアイテムを転送する

編集: 私は配列リストにすべてのアレイを交換していると私は、単純なPOJOクラスでのArrayListを使用してリストアダプタ用のデータを生成しています。 私の質問は、名前、信頼度、POJOなどのリスト項目から取得した値をどのように使用するのですか?StudentDetails型を取得してPresentStudentフラグメントのPresentStudent arraylistにそれらの値を追加しています。

public class AbsentStudentFragment extends Fragment 
{ 
ListView listForAbsentStudents; 
Context context; 


    public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) 
    { 
     final ArrayList<StudentDetails> stuAbsent= new ArrayList<>(); 

    stuAbsent.add(new StudentDetails("name","nameNot",R.mipmap.user)); 
    stuAbsent.add(new StudentDetails("81","checkName",R.mipmap.user)); 
    stuAbsent.add(new StudentDetails("60","3rd",R.mipmap.user)); 

    View view = inflater.inflate(R.layout.fragment_absent_students, container,false); 
    context=getActivity(); 
    listForAbsentStudents=(ListView)view.findViewById(R.id.listview_for_absent_students); 
    final AdapterForAbsentList adapterForAbsentList=new AdapterForAbsentList(context,stuAbsent); 
     listForAbsentStudents.setAdapter(adapterForAbsentList); 
     listForAbsentStudents.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       //what to do here.? 
       //Added below code now 
      StudentDetails studentDetails4; 
      studentDetails4=stuAbsent.get(position); 

      String temName=studentDetails4.getStudentName(); 
      String tempConfidence=studentDetails4.getStudentConfidence(); 
      int tempImage=studentDetails4.getStudentImage(); 
//Now how can I add these values to presentstudent array list in PresentStudent.java fragment.? 

         //presentStudentFragment.addToPresentStudents(temName,tempConfidence,tempImage); 
        Toast.makeText(getContext(),"value"+temName,Toast.LENGTH_SHORT).show(); 
     } 
    }); 
     return view; 
    } 
    public class AdapterForAbsentList extends BaseAdapter 
    { 

    public AdapterForAbsentList(Context mContext,ArrayList<StudentDetails>absentStudents) 
{ 
     this.absentStudents2 = absentStudents; 

this.mContext = mContext; 
    } 

    ArrayList<StudentDetails> absentStudents2; 
    private Context mContext; 



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

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

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

    @Override 
    public View getView(int i, View convertView, ViewGroup viewGroup) { 
     View viewForListView; 
     LayoutInflater inflater = (LayoutInflater) mContext 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     if (convertView == null) 
     { 
viewForListView =inflater.inflate(R.layout.custom_row_for_absent_list,null); 
      TextView txtConfidence=(TextView)viewForListView.findViewById(R.id.txtConfidence_Temp); 
      TextView txtName=(TextView)viewForListView.findViewById(R.id.txtName_Temp); 
      ImageView imgStudentThumbnail=(ImageView)viewForListView.findViewById(R.id.imgFile_Temp); 
      txtConfidence.setText(absentStudents2.get(i).getStudentConfidence()); 
      txtName.setText(absentStudents2.get(i).getStudentName()); 
      imgStudentThumbnail.setImageResource(absentStudents2.get(i).getStudentImage()); 

     } 
     else 
     { 
      viewForListView = convertView; 
     } 
     return viewForListView; 
    } 
    } 
    } 

そしてPresentStudentFragment.java 編集は、ArrayListに追加されました。
AbsentStudentFragment.javaの配列リストからArrayList listPresentStudents ..に値を追加する方法を教えてください。

public class PresentStudentFragment extends Fragment { 
ListView listForPresentStudents; 
public ArrayList<StudentDetails>listPresentStudents=new ArrayList<>(); 
Context context; 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    View view = inflater.inflate(R.layout.fragment_present_students, container, false); 
    context=getActivity(); 
     listPresentStudents.add(new StudentDetails("80","saurabh",R.mipmap.user)); 
    listPresentStudents.add(new StudentDetails("60","pqr",R.mipmap.user)); 

    listForPresentStudents=(ListView)view.findViewById(R.id.listview_for_present_students); 

AdapterForPresentList adapterForPresentListNew=new AdapterForPresentList(context,listPresentStudents); 

    listForPresentStudents.setAdapter(adapterForPresentList); 
    return view; 
    } 
public class AdapterForPresentList extends BaseAdapter 
{ 

    private Context mContext; 
    ArrayList<StudentDetails>abc; 


    public AdapterForPresentList(Context context, ArrayList<StudentDetails>pqr) 
{ 
     this.mContext=context; 
     this.abc = pqr; 
} 
    @Override 
    public int getCount() { 
     return abc.size();; 
    } 
    @Override 
    public Object getItem(int i) { 
     return null; 
    } 
    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 
    @Override 
    public View getView(int i, View convertView, ViewGroup viewGroup) 
    { 
     View viewForListView; 
     LayoutInflater inflater = (LayoutInflater) mContext 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     if (convertView == null) 
     { 
      viewForListView = inflater.inflate(R.layout.custom_row_for_present_list, null); 
      TextView txtConfidence=(TextView)viewForListView.findViewById(R.id.txtConfidence_Temp2); 
      TextView txtName=(TextView)viewForListView.findViewById(R.id.txtName_Temp2); 
      ImageView imgStudentThumbnail=(ImageView)viewForListView.findViewById(R.id.imgFile_Temp2); 

     txtName.setText(abc.get(i).getStudentName()); 
      txtConfidence.setText(abc.get(i).getStudentConfidence()); 
       imgStudentThumbnail.setImageResource(abc.get(i).getStudentImage()); 


     } else 
     { 
      viewForListView = convertView; 
     } 
     return viewForListView; 
    } 


    } 
    } 

POJOクラスStudentDetails.javaリスト項目の

public class StudentDetails { 
String studentName,studentConfidence; 
int studentImage; 

public StudentDetails() { 
} 

public String getStudentName() { 
    return studentName; 
} 

public void setStudentName(String studentName) { 
    this.studentName = studentName; 
} 

public String getStudentConfidence() { 
    return studentConfidence; 
} 

public void setStudentConfidence(String studentConfidence) { 
    this.studentConfidence = studentConfidence; 
} 

public int getStudentImage() { 
    return studentImage; 
} 

public void setStudentImage(int studentImage) { 
    this.studentImage = studentImage; 
} 

public StudentDetails(String studentName, String studentConfidence, int studentImage) { 
    this.studentName = studentName; 
    this.studentConfidence = studentConfidence; 
    this.studentImage = studentImage; 
} 
} 

とビューcustom_row_list

<ImageView 
    android:id="@+id/imgFile_Temp2" 
    android:layout_width="90dp" 
    android:layout_height="90dp" 
    android:src="@mipmap/user" 
    android:padding="10dp"/> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@id/imgFile_Temp2" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/txtConfidence_Temp2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:textColor="@android:color/black" 
     android:textSize="16sp" /> 


    <TextView 
     android:id="@+id/txtName_Temp2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:textColor="@android:color/black" 
     android:textSize="16sp" /> 

私はスワイプ場合/ listForAbsentStudentsから項目をクリックすると必要なものそれからリストはに転送されるはずですリストとその項目は不在の学生リストから削除する必要があります。 これを行うにはどうすればよいですか。スワイプをすることについては忘れてください。私には遠いようです。 onItemclick()の方法を教えてください。listview エクストラを渡すためにインテントやバンドルを使用する必要がありますか。 何かの線に沿ってparent.getItemAt(position) ..?

答えて

1

あなたは何を求めているのですか...あなたのフラグメントの1つにListViewが含まれていると仮定します。ユーザーがListViewから任意のItemをクリックすると、そのItemは別のフラグメントに渡されます。

AbsentStudentFragment.java onItemClick中(..)メソッドPresentStudentFragment.javaであなたのonCreateView(..)メソッド

String value = getArguments().getString("YourKey"); 

はこれがあなたのお役に立てば幸いです

PresentStudentFragment fragObj = new PresentStudentFragment(); 
Bundle args = new Bundle(); 
args.putString("YourKey", "YourValue"); 
//as many as putString() you want 
fragObj.setArguments(args); 

でこれを使用してください..

+0

No..実際には、あるリストビューから別のリストビューにアイテムを渡すことでした。あなたは両方のリストビューが別々のフラグメントになっているということは間違いありません...問題は、ファンクション通信にありました。私は 'インターフェースとアクティビティメソッド'を使ってみましたが、それはうまくいきませんでした。最終的にはバックエンドでsqlite dbを使用していました。 – saurabh169

関連する問題