0

これは私のコンテナ アクティビティTable_infoであり、コンテナ アクティビティからその子 fragment にデータを渡したいと考えていますTable_no。しかし、文字列をフラグメントとして受け取っていますnull

Table_info のコード:

package com.example.androiddbconnection;

import android.content.Intent;
import android.os.Bundle;
android.support.v4.app.FragmentActivity;
import android.util.Log;

public class Table_info extends FragmentActivity {
String restaurant;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tableinfo_frag);

Intent in=getIntent();
    Bundle bundle = getIntent().getExtras();
    restaurant = bundle.getString("outletname");
    Log.d("in mainactivity",restaurant);

  Bundle bundle1 = new Bundle();

  bundle1.putString("restaurant",restaurant);

    Table_no fragment=new Table_no();
    fragment.setArguments(bundle1);



    }


  }

これは私のフラグメントTable_noです:

public class Table_no extends Fragment {

String restaurant12;
 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle bundle=getArguments(); 
        if (bundle == null) {
        Toast.makeText(getActivity(),"argum is null", Toast.LENGTH_LONG).show();
        }
            else{
            Toast.makeText(getActivity(),"argume", Toast.LENGTH_LONG).show();
        restaurant12=bundle.toString();
        Log.d("arguments", restaurant12);
        }

 }

しかし、私は次のような応答を得ています'argum is null'

4

3 に答える 3

0

フラグメントにはコンストラクターを使用します。コンストラクターを使用して、フラグメントに値を直接渡すことができます。

public class Table_no extends Fragment {

String restaurant12="";

public Table_no(String restaurant)
{
restaurant12=restaurant;
}

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 Toast.makeText(getActivity(),restaurant12, Toast.LENGTH_LONG).show();

 }
于 2013-10-16T09:22:35.917 に答える