0
以下のカスタムダイアログボックスでコードをリファクタリングする必要があります。はandroid.support.v4.app.DialogFragmentをandroid.app.DialogFragmentにリファクタリングする必要があります
import android.app.Activity;
import android.content.Intent;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.util.Log;
public class BaseDialogFragment extends DialogFragment {
public BaseActivity parentActivity;
protected void showMessage(String title, String message) {
MessageDialogFragment dialog = MessageDialogFragment.newInstance(title, message);
dialog.setCancelable(false);
dialog.show(parentActivity.getSupportFragmentManager(), MessageDialogFragment.TAG);
}
//...
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (getChildFragmentManager().getFragments() != null) {
for (Fragment fragment : getChildFragmentManager().getFragments()) {
if (fragment != null) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
}
}
}
そして、私はそれを変換したい:
android.support.v4.app.DialogFragment;
android.support.v4.app.Fragment;
へ:
android.app.DialogFragment;
android.app.Fragment;
そして、私はそれを正しいリライトこれを行うことはできません。
for (Fragment fragment : getChildFragmentManager().getFragments()) {
if (fragment != null) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
、教えてくださいをそれを正しく行う方法。
こんにちはニコラス、まず、なぜあなたはあなたのコードをリファクタリングする必要がありますか?次に、私は最後の部分を理解していない、あなたのコードのこの部分をリファクタリングすることはできません:for(フラグメントフラグメント:getChildFragmentManager().getFragments()){ if(フラグメント!= null){ フラグメント。 onActivityResult(requestCode、resultCode、data); } } – Arrabidas92
こんにちはArrabidas92、私たちのアプリがminSdkVersion 17をサポートしているためリファクタリングする必要があります。そして、はい、私は私のコードのこの部分をリファクタリングすることはできません... –
まあ、私はいつも元のものと比較してサポートライブラリを維持する方が良いと聞いています。問題は、私が考えるフラグメントのリストを提供することができる "通常の"ライブラリにはメソッドがないということです。通常のAPIの場合は、次のようなものがあります: "for(フラグメントフラグメント:getFragmentManager()。getFragment(バンドルバンドル、String TAG)){ if(フラグメント!= null){ fragment.onActivityResult(requestCode、resultCode、data) ; } } – Arrabidas92