0

私はAndroidが初めてで、ActivityからFragmentにバンドルを送信しようとしています

Bundle args = new Bundle();
args.putString("name", "XXXXXXX");

FragmentTab1 fTab1 = new FragmentTab1();
fTab1.setArguments(args);

FragmentTab1 の onCreate メソッドでは次のようになります。

public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {
    // Get the view from fragmenttab1.xml
    View view = inflater.inflate(R.layout.fragmenttab1, container, false);
    Bundle bundle = this.getArguments();
    if (bundle != null) {
      name = bundle.getString("name");
    }
    TextView nameView = (TextView) view.findViewById(R.id.dinesh);
    nameView.setText(name);
    return view;
  }

取得null pointer exception_ Bundle bundle = this.getArguments();

この例外を追跡するのを手伝ってください

4

4 に答える 4

1

これを試して

Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);

およびフラグメントタスクで

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    String strtext = getArguments().getString("edttext");    
    return inflater.inflate(R.layout.fragment, container, false);
}
于 2014-08-14T07:57:36.757 に答える
1

私の答えがあなたのために遅れている場合は申し訳ありません..

フラグメントの最初のインスタンスを作成してからバンドルしてください。フラグメントで引数を取得するには、フラグメントでトランザクションを実行してください。

FragmentTab1 fTab1 = new FragmentTab1();
Bundle args = new Bundle();
args.putString("name", "XXXXXXX");
fTab1.setArguments(args);

これでヌル ポインターの例外が解決されることを願っています。フラグメントの onStart または OnCreateView メソッドで引数を取得できます。

敬具、

于 2014-03-19T11:28:39.210 に答える
0

フラグメントに静的メソッドを作成し、バンドル引数をそのメソッドに渡すだけです。これは、これまでに見つけた最も単純なメソッドです。

以下は、フラグメントのメソッドの形式になります

Bundle arg;
public static void setArguments(Bundle Args)
{


    arg=Args;

}

そして、引数を設定したい場所から、この方法で呼び出すだけです

YourFragment.setArguments(Args);

この回答が役立つことを願っています

于 2013-08-23T08:53:05.870 に答える