フラグメントを使用して、最初の適切な Android アプリを構築しようとしています。私はメインのxmlを持っています。これは 2 つの垂直フラグメントで構成され、上部のフラグメントは 2 つの TextView のみで構成されます。最初のテキストには静的テキストが含まれ、2 番目のテキストには最終的に SQL から動的に取得する値が含まれます。
これを MainActivity.java にすると、最初の Fragment の TextView の値が喜んで更新されます。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Set the Text to try this out
TextView t = (TextView)findViewById(R.id.viewItem);
t.setText("Text to Display");
}
2 つのフラグメント XML とそれぞれをサポートする Java があるため、このフィールドの設定を、MainActivity 用の Java ではなく、フラグメントをサポートする Java に入れたいと考えています。
フラグメントに入れると、次のようになります。
public class FragmentMainTop extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState){
// -- inflate the layout for this fragment
return inflater.inflate(R.layout.fragmentmt, container,false);
// Set the Text to try this out
TextView t = (TextView)findViewById(R.id.viewItem);
t.setText("Text to Display");
}
しかし、これを行うと、TextView 行でエラーが発生します。
「FragmentMainTop 型のメソッド findViewById(int) は定義されていません」
では、なぜこの方法を知らないのでしょうか。私は ctl/shift/o を持っているので、すべての適切なインポートがあることを知っています。すべてのコードを MainActivity に入れたくありません。別のアクティビティで Fragment を使用したい場合は、すべてのコードを繰り返さなければならないからです。