我是碎片的新手,现在他们对我有点困惑。 我已经阅读了很多并且实际上使用this tutorial
构建了一个测试应用程序我能够添加更多标签等等。但我不想显示静态 内容(xmls)。我希望能够修改UI添加列表视图,使用asynctasck加载json数据等等,但我做的第一次尝试失败了。
所以在Tab1:
public class Tab1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.tab_1,container,false);
return v;
}
}
我尝试声明textview并使用settext编辑它的文本但是 我遇到了崩溃,并且findviewbyid也不可用作方法。 当我输入getView()。findViewById但它没有抛出错误 那不是问题。
片段是否有限或与传统活动有很大不同? 我是否需要永不结束自定义 为了获得listview加载?
谢谢。
答案 0 :(得分:0)
Fragment
没有活动方法。
如果要使用findViewById
方法,则应使用类字段。
public class Tab1 extends Fragment {
private View mView;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.tab_1,container,false);
return mView;
}
@Override
public void onCreate() {
// here you can use `findViewById` method via `mView` variable
mView.findViewById(YOUR_VIEW_ID);
}
}
答案 1 :(得分:0)
片段中基本上有2种方法可供使用 1. onCreateView 2. onViewCreated
第一个用于扩充片段的布局 第二个用于查找布局中使用的所有视图。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.tab_1, container, false);
return v;
}
@Override
public void onViewCreated(View v){
mTextView = (TextView) v.findViewById(R.id.my_text_view);
mTextView.setText("Hello, World!");
}