を取得することはできません。今私は私の活動の中で、私がnewFragmentに持っているレイアウトで置き換える必要がある動的な文字列を知っています。私はアンドロイド:フラグメントは、私は正常に動作フラグメント取引</p> <pre><code>DetailFragment newFragment = new DetailFragment(); transaction.replace(R.id.mylist, newFragment); transaction.addToBackStack(null); transaction.commit(); </code></pre> <p>をする活性を有する活動
public void setMyString(String s)
{
TextView tv = (TextView) getActivity().findViewById(R.id.myobject);
tv.setText(s);
}
ポイントはgetActivity()がnullを返すということである持っている私は()transaction.commit後
newFragment.setMyString("my dynamic value");
好きnewFragment.java内だけで何かを呼び出すことができると考えました。レイアウト要素を見つけるために必要なコンテキストを取得するにはどうすればよいですか?
編集:
私は、これはクリーンな方法であると思われるようバンドルを使用してルートをたどるようにしてください。だから私は私のコードを変更しました。このようになりますonCreateView
Bundle b = new Bundle();
b.putString("text", "my dynamic Text");
DetailFragment newFragment = new DetailFragment();
transaction.replace(R.id.mylist, newFragment);
transaction.addToBackStack(null);
transaction.commit();
マイフラグメント:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.mylayout, container, false);
TextView t = (TextView) v.findViewById(R.id.texttobereplaced);
t.setText(savedInstanceState.getString("text");
}
savedInstranceStateが空であるようです。どこでバンドルを見つけるべきですか?
EDIT2:
が応答で)(getArgumentsを逃しました。今働いている。
私のレイアウトは膨らんでいますonViewCreatedが呼び出されます。私は私のレイアウトを見ることができます。 – AndyAndroid