私のレイアウト用のXMLファイルで、フラグメントを追加しました。 私のフラグメントのレイアウトはLinearLayoutで、テキストビューが含まれています。フラグメント内のLinearLayoutへの参照を取得する
私のフラグメントクラスのLinearLayoutオブジェクトへの参照を取得したいと思いますが、私が思う、またはオンラインで見つけることができるすべてを試しても、常にnullです。
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
text = (TextView) getActivity().findViewById(R.id.text);
layout = (LinearLayout) getActivity().findViewById(R.id.layout);
if(layout == null){
text.setText("null");
}
}
このコードは、私のフラグメントクラスにあり、レイアウトがnullのためTextViewのテキストが "null"に設定されます。私はレイアウトとテキストビューへの参照をまったく同じ方法で取得しようとしているので、これはどのようにすることができますか?
アクティビティクラスのonCreateで
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
manager = getFragmentManager();
MyFragment = (MyFragment) manager.findFragmentById(R.id.fragment);
}
方法2
私は私の活動でのLinearLayoutへの参照を取得しようとしました。この試行でアクティビティのonCreateを次に示します。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
manager = getFragmentManager();
MyFragment = (MyFragment) manager.findFragmentById(R.id.fragment);
LinearLayout ll = (LinearLayout) findViewById(R.id.layout);
TextView tv = (TextView) findViewById(R.id.text);
if(ll == null){
tv.setText("null");
}
}
これにより、テキストが「null」に変更されました。
あなたの 'Activity.onCreate'を投稿してください。あなたのアクティビティでビューが作成されている場合は、コードをアクティビティに移動することをお勧めします –
'Activity'から' Fragment'の 'LinearLayout'を取得しようとしていますか?私はそれを正しくしていますか? – Sunshinator
'getActivity()。findViewById(R.id.text)'を参照していますか?私は 'onActivityCreated()'の中で 'getView()。findViewById(...)'を試してみましたが、フラグメントを通過するだけですが、どちらも動作しませんでした。 – Tirmulus