Я пытаюсь использовать фрагменты для создания своего первого подходящего приложения для Android. У меня есть основной xml. который состоит из двух вертикальных фрагментов, верхние фрагменты состоят всего из двух TextView. Первый из них содержит статический текст, а второй содержит значение, которое я в конечном итоге получаю динамически из SQL.
Если я ставлю это мой MainActivity.java, тогда он с радостью обновит значение 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");
}
У меня есть два фрагмента XML и java для поддержки каждого, поэтому я хочу поместить параметр этого поля в Java, который поддерживает фрагмент, а не java, который предназначен для MainActivity.
Когда я помещаю его во фрагмент, он выглядит так: -
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:
"Метод findViewById (int) undefined для типа FragmentMainTop"
Так почему он не знает этот метод? У меня есть ctl/shift/o, поэтому я знаю, что у меня есть все необходимые импорты. Я не хочу вставлять весь свой код в MainActivity, потому что, если я захочу использовать фрагмент в другом упражнении, мне придется повторить весь код.