2017-04-05 20 views
0

所以在這裏我調用適配器類的接口方法。我想根據用戶的輸入更新List。我將如何實現它?如何從接口方法中獲得響應android

適配器類:

public class ToDoListAdaptor extends SectionRecyclerViewAdapter < SectionHeader, Action, SectionViewHolder, ChildViewHolder > { 

    @Override 
    public void onBindChildViewHolder(final ChildViewHolder holder, final int sectionPosition, final int childPosition, final Action child) { 

     Context mainActivityContext = Constants.getContext(); 

     if (action_id.equals("pain")) { 

      if (mainActivityContext != null && mainActivityContext instanceof MainActivity) { 
       interfaceAdapter = ((HealthVitalsFunction) mainActivityContext); 
       boolean result = interfaceAdapter.openPainRecordDialog(context, dbHelper, action_id, action_cat_id, action_plan_id, action_name); 

       if (result) 
        update(sectionHeaderList, childPosition); 
      } 

     } 

    } 
} 

的問題是,我不能夠調用update()時,用戶的輸入完成。

編輯:

@Override 
    public boolean openPainRecordDialog(final Context context, final DbHelper dbHelper, final String action_id, final String action_cat_id, final String action_plan_id, final String action_name) { 


     Constants.painData=false; 
     LayoutInflater layoutInflaterAndroid = LayoutInflater.from(context); 
     final View mView = layoutInflaterAndroid.inflate(R.layout.pain_record, null); 


     final AlertDialog dialog = new AlertDialog.Builder(context) 
       .setView(mView) 
       .setTitle("") 
       .setPositiveButton(android.R.string.ok, null) 
       .setNegativeButton(android.R.string.cancel, null) 
       .setCancelable(false) 
       .create(); 




     dialog.setOnShowListener(new DialogInterface.OnShowListener() { 
      @Override 
      public void onShow(final DialogInterface dialog) { 

       Button positiveButton = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE); 
       positiveButton.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View view) { 
         // TODO Do something 

         if (dialog != null && ((AlertDialog) dialog).isShowing()) { 
          dialog.dismiss(); 
         } 

         Constants.painData = true; 


        } 
       }); 

       Button negativeButton = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_NEGATIVE); 
       negativeButton.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         // TODO Do something 

         if (dialog != null && ((AlertDialog) dialog).isShowing()) { 
          dialog.dismiss(); 
         } 

         Constants.painData = false; 
        } 

       }); 

      } 
     }); 



     // show it 
     dialog.show(); 

     return Constants.painData; 

    } 
+0

你使用的是一個對話框片段,它彈出點擊項目的recyclerview? – Darish

+0

我正在使用AlertDialog類來顯示自定義對話框。 @Darish –

+0

按照你的意願正確地彈出alertDialog對話框? – Darish

回答

0

我想更新根據用戶的輸入列表。

如果您正在使用一個自定義對話框,提供自定義界面的回調定義onSuccess()方法和您的電話的活動,它可以用來更新recyclerView實現它。歡呼聲:)

+0

更新數據列表後,只需調用notifydatasetchanged方法 – Darish

+0

你可以提供我如何做的例子。 @Darish –

+0

使用自定義對話框片段,然後將回調傳遞給構造函數.. – Darish

相關問題