我正在尝试使用片段来构建我的第一个合适的 Android 应用程序。我有一个主要的 xml。它由两个垂直片段组成,顶部片段仅由两个 TextView 组成。其中第一个包含静态文本,第二个包含一个值,我最终将从 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");
}
我有两个片段 XML 和一个 Java 来支持每个,所以我想将此字段的设置放入支持片段的 Java 中,而不是用于 MainActivity 的 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,我将不得不重复所有代码。