2015-12-18 87 views
0

我試圖從活動數據發送到這裏分段 是活動代碼:從活動發送數據到其片段?

Bundle args=new Bundle(); 
    args.putString("username", username); 
    ViewEmpAttend fragobj=new ViewEmpAttend(); 
    fragobj.setArguments(args); 

這裏是片段代碼:

username=this.getArguments().getString("username"); 

但是這個代碼給我一個錯誤說「無效(片段類)中onCreateView方法中的「對象引用」。

請幫助:)

+2

你在佈局中聲明你的片段嗎? – Blackbelt

+0

請發佈完整的代碼... –

+0

你如何使用fragobj?它是這樣的getSupportFragmentManager()。beginTransaction()。replace(R.id.container,fragobj).commit();或不? – comrade

回答

0

嘗試從的onCreate檢索片段

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String username = this.getArguments().getString("username"); 

} 
0

在活動的參數定義一個方法。

public class MainActivity extends AppCompatActivity { 
    String name; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //your code 
} 
//define this method 
    public String getName(){ 
     this.name = username; 
     }} 

在片段使用下面的代碼。

String userName = ((activityName) getActivity()).getName();//you will get name here. 
0

對於這樣簡單的事情,我只是在片段中創建一個構造函數方法來傳遞一個字符串。

例如

public class MyFragment extends Fragment{ 

    private String myString; 

    public MyFragment(){ 
    // Recommended Empty Constructor 
    } 

    public MyFragment (String yourString){ 
     this.myString = yourString; 

    } 
} 

您的活動類,你可以將字符串直接到你的片段構造函數傳遞

public MyClass extends Activity{ 

    @override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     openFragment(); 
    } 

    public void openFragment(){ 

     MyFragment fragment = new Fragment("yourString"); 
     // Here begin the fragment transaction 
    } 
} 
相關問題