2016-01-22 70 views
0

我不太確定這是否可能,但我試圖更改自定義DialogFragment的內容(閱讀內容,如1 imageview和3 textviews)的Recyclerview適配器。從Recyclerview適配器更改DialogFragment的內容

我的當前自定義DialogFragment:

public class ServiceDialogFragment extends DialogFragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.service_card, container, false); 
    } 
} 

而且佈局: enter image description here

正如你在上圖中看到:我身後的一個列表,其中顯示DialogFragment每當我按一個DialogFragment出現的那些「按鈕」。 但我的問題是:我如何更改我的Recyclerview適配器內的自定義DialogFragment的內容?

我的適配器:

public class ServiceAdapter extends RecyclerView.Adapter<ServiceAdapter.ViewHolder>{ 
    private final String TAG = "******* Service Adapter"; 
    private ArrayList<ServiceObject> mDataset; 
    private Context mContext; 
    private Resources mResources; 
    private Context location; 

    public ServiceAdapter(ArrayList<ServiceObject> mDataset, Context mContext, Resources mResources) { 
     this.mDataset = mDataset; 
     this.mContext = mContext; 
     this.mResources = mResources; 
    } 

    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     location = parent.getContext(); 
     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.service_box, parent, false); 

     return new ViewHolder(v); 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     holder.title.setText(mDataset.get(position).getTitle()); 
     holder.icon.setImageResource(mResources.getIdentifier(Integer.toString(mDataset.get(position).getIcon()), "drawable", "net.example.adapter")); 
    } 

    @Override 
    public void onAttachedToRecyclerView(RecyclerView recyclerView) { 
     super.onAttachedToRecyclerView(recyclerView); 
    } 

    @Override 
    public int getItemCount() { 
     return mDataset == null ? 0 : mDataset.size(); 
    } 


    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 

     TextView title, desc, price; 
     ImageView icon; 

     public ViewHolder(View v) { 
      super(v); 
      title = (TextView) v.findViewById(R.id.service_box_title); 
      price = (TextView) v.findViewById(R.id.service_card_price); 
      icon = (ImageView) v.findViewById(R.id.service_box_icon); 
      v.setOnClickListener(this); 
     } 

     @Override 
     public void onClick(View v) { 
      FragmentActivity activity = (FragmentActivity)(mContext); 
      FragmentManager fm = activity.getSupportFragmentManager(); 
      ServiceDialogFragment alertDialog = new ServiceDialogFragment(); 
      alertDialog.show(fm, "display_service"); 
     } 
    } 
} 
+1

如何顯示對話框片段。張貼一些代碼 – Raghunandan

+0

當然。幹得好。 – Perelan

+1

您可以將一些數據傳遞給您的對話框,並使用它來更改您想要的內容。 Info @ http://developer.android.com/reference/android/app/DialogFragment.html – Raghunandan

回答

相關問題