Abd*_*man 6 android android-fragments getview
getView()
和之间有什么区别getActivity()
?
我已经使用了这两种方法,但是不了解基本的区别,即使使用方法在android中也是如此:
ListView deliverItemList = (ListView) getView().findViewById(R.id.load_item_list);
ListView deliverItemList = (ListView) getActivity().findViewById(R.id.load_item_list);
Run Code Online (Sandbox Code Playgroud)
我假设getView()
可能会产生NullPointerException
,与我分享你的知识,推荐哪种方法?
getActivity()
返回Activity
托管Fragment
,而getView()
回报的观点你膨胀和返回的onCreateView
.后者!= null
仅在onCreateView
返回后返回值
来自android文档:
getActivity()返回此片段当前与之关联的Activity,getView()返回片段布局的根视图(onCreateView(LayoutInflater,ViewGroup,Bundle)返回的视图),如果提供的话.
因此,在您的情况下,通过以下代码行:
getView().findViewById(R.id.load_item_list);
Run Code Online (Sandbox Code Playgroud)
您正在片段中搜索视图,但使用以下代码行:
getActivity().findViewById(R.id.load_item_list);
Run Code Online (Sandbox Code Playgroud)
您正在搜索托管片段的活动中的视图.
关于你使用哪一个的问题,取决于你.如果您尝试对片段进行充气,则需要在onCreateView中对xml进行充气,并使用该充气视图搜索您的视图,如下所示:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.your_layout, container, false);
ListView lv = (ListView)v.findViewById(R.id.view_id);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1783 次 |
最近记录: |