2015-10-28 74 views
0

我在做一個簡單的應用程序,其中我實現了tabhost。程序應該做的是獲得我們在tabhost的片段editText中輸入的值,當我們點擊最後一個片段中的按鈕時,它應該在最後一個片段中顯示它。從edittext將數據返回到不同片段中的字符串直接在tabhost中最後一個片段

我有兩個想法。

一個是獲取該片段的Edittext值到同一個片段並將該值發送到最後一個片段。

另一種是直接將所有片段的數據直接檢索到最後一個片段。

Plzz建議我這樣做的方法。哪個好,哪個是可能的。

在此先感謝。

+0

你應該簡單地使用bundle傳遞這些值。 – activesince93

+0

你可以給我這個例子代碼。 –

+0

檢查我的回答 – activesince93

回答

2
  • 如果它像有限的數據,你可以試試下面的每個場景和正在使用的數據量...

1)您可以通過捆綁,同時打開新的片斷。但是如果你在TabHost中有更多的片段,它將會很難將數據傳輸到每個調用或開頭片段。

2)TabManager類中的靜態變量,您可以在其中切換不同的片段。

+0

我已經有了一個想法與您的答案,但有一些混淆如何將每個片段的值存儲到活動的哪個片段託管以及如何在最後一個片段中檢索它們。我從未使用過tabhost之前,這有點讓人困惑,所以請你詳細解釋一下。 –

+0

*要更好地理解啓動,請查看「http://android-er.blogspot.in/2012/06/communication-between-fragments-in.html」 – Karthik

0

1.to從片段的數據發送到活動

Intent intent = new Intent(getActivity().getBaseContext(), TargetActivity.class); 
intent.putExtra("message", message); 
getActivity().startActivity(intent); 

2.to在活動接收該數據:

Intent intent = getIntent(); 
String message = intent.getStringExtra("message"); 

3.to從活動的數據發送到另一個活動遵循正常的做法

Intent intent = new Intent(MainActivity.this, TargetActivity.class); 
intent.putExtra("message", message); 
startActivity(intent); 

4.to在活動中接收此數據

Intent intent = getIntent(); 
    String message = intent.getStringExtra("message"); 

5.From活動可以發送數據到碎片意圖爲:

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

,並接收在片段中片段onCreateView方法:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    String strtext=getArguments().getString("message"); 
    return inflater.inflate(R.layout.fragment, container, false); 
} 

源:here

+0

我們如何才能在其父類中檢索片段的數據直。 –

+0

如果我們使用intent進行通信。我們將被定向到父類的第一個片段。所以會有一個問題,它不會留在同一個頁面,每次都會返回。 –

+0

該使用包。 – activesince93

相關問題