之前我有一个活动布局,我现在正试图在一个片段中复制,作为viewPager的一部分。我复制了旧的XML文件并在发生冲突时更改了所有ID。我正在引用此片段的新XML布局以及创建的新ID。但是当我运行它时会得到这个nullpointerexception。
这是logcat文件 http://i48.tinypic.com/14ekq6s.png
这是发生错误的java文件的一部分。
@Override
public RelativeLayout onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (container == null) {
// We have different layouts, and in one of them this
// fragment's containing frame doesn't exist. The fragment
// may still be created from its saved state, but there is
// no reason to try to create its view hierarchy because it
// won't be displayed. Note this is not needed -- we could
// just run the code below, where we would create and return
// the view hierarchy; it would just never be used.
return null;
}
inflater.inflate(R.layout.one, null);
ViewPager viewFinder = (ViewPager) getView();
//setContentView(R.layout.one);
title = (TextView) viewFinder.findViewById(R.id.frag_AA); //ERROR xml id file probz
这是布局文件。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/frag_AA"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="I Am Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
答案 0 :(得分:1)
原因是viewFinder
为空。
我看到你夸大了R.layout.one
:
inflater.inflate(R.layout.one, null);
但是你没有使用inflater返回的视图。
inflater.inflate()
会返回一个视图,您应该在这里查找title
TextView。
这样的事情:
View view = inflater.inflate(R.layout.one, null);
title = (TextView)view.findViewById(R.id.frag_AA);
(我从未使用过ViewPagers,但看看over this page,我觉得你错了,虽然我可能没错。
答案 1 :(得分:0)
请尝试以下代码..
View myview = inflater.inflate(R.layout.one, null);
title = (TextView)myview.findViewById(R.id.frag_AA);
因为你的inflater没有夸大任何布局null
,因为如果
inflater.inflate(R.layout.one, null);
是返回类型。
它返回一个视图。
这就出现了这个问题。