我試圖從一個片段類訪問scrollview裏面的textview,我試着從其他相關問題中找到的所有建議,但我總是在settext中得到nullpointerexception。scrollview內textview的空指針異常
這裏是我的片段類:
View view;
TextView links;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState) {
view = inflater.inflate(R.layout.help_4, null);
return view;
}
@Override
public void onViewCreated (View view, Bundle savedInstanceState)
{
ScrollView sv = (ScrollView) view.findViewById(R.id.svText);
links = (TextView) sv.findViewById(R.id.tvHelpText4);
links.setText("vblsarasdferadfkwersfadfwe");
//links.setMovementMethod(LinkMovementMethod.getInstance());
/* Other code here */
}
這裏是XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/help_settings"
android:id="@+id/textView"
android:background="#0570A9"
android:clickable="true"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:textColor="#ffffff"
android:paddingEnd="5dp"
android:paddingStart="5dp"/>
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:id="@+id/svText">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/help_text4"
android:id="@+id/tvHelpText4"
android:layout_marginTop="30dp"
android:textSize="20sp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:paddingBottom="20dp"
android:paddingLeft="10dp"
android:paddingRight="5dp"
android:autoLink="all"/>
</ScrollView>
</LinearLayout>
UPDATE 感謝大家的幫助。問題出在資源上。我在layout-hdpi文件夾中有上述xml的另一個副本。在某些情況下,我更改了id而不更新文件。我刪除了該文件,但我忘記清理該項目。現在它工作正常。
您是否嘗試過'links = view.findViewById()'而不是'sv.findviewById'? – Estel 2014-09-01 10:00:39
在onCreateView中,我認爲你需要容器。嘗試這個。 view =(View)inflater.inflate(R.layout.fragment_home,container,false); – 2014-09-01 10:02:06
我已經嘗試過(我假設你的R.layout.fragment_home,是我的R.layout.help_4) – 2014-09-01 10:13:24