5
私のクラスはDialogFragmentに引数を渡す必要がありますが、NullPointerExceptionのonCreateメソッド(ダイアログクラスの)内でアプリケーションがクラッシュします。コードの ダイアログフラグメントクラス部分:DialogFragment引数とnullpointer例外
public class ConfirmDialog extends DialogFragment {
public ConfirmDialog() {}
ConfirmDialog newInstance(String f) {
ConfirmDialog d = new ConfirmDialog();
Bundle args = new Bundle();
args.putString("FILE_NAME", f);
d.setArguments(args);
return d;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
file = getArguments().getString("FILE_NAME");
}
私は、この行でnullポインタがあります。
file = getArguments().getString("FILE_NAME");
を、私は理由を知りません。 は、私はまた、コードは、ダイアログここ
private void showConfirmDialog(String file) {
FragmentManager fm = getSupportFragmentManager();
ConfirmDialog dialog = new ConfirmDialog();
Log.i("SHOWFILEACTIVITY", file);
dialog.newInstance(file);
dialog.show(fm, "fragment_confirm_dialog");
}
「ファイル」と呼ぶ貼り付ける文字列がnullではない、私はその後、
Log.i("SHOWFILEACTIVITY", file);
okありがとうございます。私はnewInstance関数を使ったことは一度もなく、私は間違いを犯しました! しかし、なぜnewInstanceは静的であるべきですか? – giozh
@giozh Dialogの 'new'インスタンスを作成したいので、既に作成された* Dialogのインスタンスに頼るのは悪い設計アプローチです。メソッドを静的に保つと依存関係が削除され、オブジェクト作成が少なくなります。 –