2016-04-06 9 views
-1

Android Dialogfragmentonclicklistner別クラス解散方法 私はonCreateViewメソッドでダイアログビューを作成します。アンドロイドDialogfragment onclicklistner別クラス解散方法

マイコード

断片ダイアログ

public class ShareDialogFragment extends DialogFragment { 
private static final String ARG_PARAM1 = "param1"; 
private static final String ARG_PARAM2 = "param2"; 
private String mParam1; 
private String mParam2; 
String articleID; 
MultiAutoCompleteTextView myMultiAutoCompleteTextView; 
TextView Cancel; 
Context context; 
OnClickListenerCustom onClickListenerCustom; 
String item[]={ 
     "January", "February", "March", "April", 
     "May", "June", "July", "August", 
     "September", "October", "November", "December" 
}; 
public ShareDialogFragment() { 

} 
public static ShareDialogFragment newInstance(String param1, String param2) { 
    ShareDialogFragment fragment = new ShareDialogFragment(); 
    Bundle args = new Bundle(); 
    args.putString(ARG_PARAM1, param1); 
    args.putString(ARG_PARAM2, param2); 
    fragment.setArguments(args); 
    return fragment; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (getArguments() != null) { 
     mParam1 = getArguments().getString(ARG_PARAM1); 
     mParam2 = getArguments().getString(ARG_PARAM2); 
    } 
    //ThemeOverlay_Material_Light 
    setStyle(DialogFragment.STYLE_NO_TITLE, R.style.alert_dialog); 
    final Dialog dialog = new Dialog(getActivity()); 


    Bundle arg = getArguments(); 
    if(arg!=null){ 
     articleID = getArguments().getString("ArticleId"); 
    } 


} 
@Override 
public void onAttach(Activity activity){ 
    super.onAttach(activity); 
    context = activity; 
} 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view =inflater.inflate(R.layout.fragment_share_dialog, container, false); 
    Cancel = (TextView)view.findViewById(R.id.Cancel); 
    onClickListenerCustom = new OnClickListenerCustom(context); 
    Cancel.setOnClickListener(onClickListenerCustom); 

    myMultiAutoCompleteTextView = (MultiAutoCompleteTextView)view.findViewById(R.id.editText); 
    myMultiAutoCompleteTextView.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, item)); 
    myMultiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); 

    return view; 
} 
} 

OnClickListenerCustomスイッチケースは、ホットで試すDialog Fragment

public class OnClickListenerCustom implements OnClickListener { 
    public Context context; 
    String articleId, CompID; 
    public int articlePost; 
    public OnClickListenerCustom(Context context, String articleId, String CompID,int articlePost) { 
     this.context = context; 
     this.articleId = articleId; 
     this.CompID = CompID; 
     this.articlePost = articlePost; 

    } 
    public OnClickListenerCustom(Context context){ 
     this.context = context; 
    } 
    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.starImage: 
       v.setActivated(!v.isActivated()); 
       if (v.isActivated()) { 
        PatApi.isFavorites(articleId, "add", "article"); 
       } else if (!v.isActivated()) { 
        PatApi.isFavorites(articleId, "remove", "article"); 
       } 
       break; 
      case R.id.imagePat: 
       v.setActivated(!v.isActivated()); 
       PatApi.isPat(CompID, articleId, "3"); 
       break; 
      case R.id.share: 
       FragmentManager manager = ((Activity) context).getFragmentManager(); 
       Bundle arg= new Bundle(); 
       arg.putString("ArticleId",String.valueOf(articlePost)); 
       ShareDialogFragment msgDialog = new ShareDialogFragment(); 
       msgDialog.show(manager,"Dialog"); 
       msgDialog.setArguments(arg); 
       break; 
      case R.id.RelativeWrapper: 
       Intent i = new Intent(v.getContext(), ArticleView.class); 
       v.getContext().startActivity(i); 
       break; 
      case R.id.favoritesSwipe: 
       v.setActivated(!v.isActivated()); 
       if (v.isActivated()) { 
        PatApi.isFavorites(articleId, "add", "article"); 
       } else if (!v.isActivated()) { 
        PatApi.isFavorites(articleId, "remove", "article"); 
       } 
       break; 
      case R.id.imageFavorites: 
       // v.setActivated(!v.isActivated()); 
       M.t(context, "IMAGES"); 
       break; 
      case R.id.Cancel: 
       M.t(context, "Dismiss "); 
       //how to Dismiss oc Click 

     /* 
       ShareDialogFragment superSimpleDlg = new ShareDialogFragment(); 
       superSimpleDlg.dismiss();*/ 

       break; 
     } 
    } 
} 
+0

を試してみてくださいこのcontext.getDialog()。dismiss(); –

答えて

0

解任

popupWindow.dismiss();

+0

他の提案 –

+0

ダイアログクラス内に1つのメソッドを作成し、.dismiss()を追加し、そのメソッドをそのオブジェクトから呼び出します。 (わからないが、うまくいくかもしれない) – Adarsh

+0

私のダイアログのフラグメントonClick ShareDialogFragment superSimpleDlg = new ShareDialogFragment(); superSimpleDlg.popupWindow.dismiss(); DialogFragment popupWindow =新しいダイアログ(コンテキスト)。エラー:NULLオブジェクト参照で仮想メソッド 'void android.app.Dialog.dismiss()'を呼び出そうとしました –

0

がShareDialogFragmentクラスの

変更グローバル-------

宣言ダイアログ......これを試してみてください...のonCreateメソッドで

Dialog dialog; 

は初期化..

dialog = new Dialog(getActivity()); 

とonCreateView

0123で
onClickListenerCustom = new OnClickListenerCustom(context, dialog); 

OnClickListenerCustomクラスの変更----グローバル

宣言...

Dialog dialog; 

コンストラクタ

public OnClickListenerCustom (Context context, Dialog dialog){ 
    this.context = context; 
    this.dialog = dialog; 
} 

case R.id.Cancel: 
      M.t(context, "Dismiss "); 
      //how to Dismiss oc Click 
      dialog.dismiss(); 
      break; 

ホープ番目あなたを助けるでしょう...

+0

メソッドdismiss()、fg.dismiss()を解決できません。 –

+0

私の答えを更新しました....試してみてください... –

+0

助けてください助けてください –

関連する問題