我有一个TabActivity
包含其他旨在拆分表单的活动。其TabActivity
布局中有一个按钮,用于从包含在其中的所有活动的所有表单相关视图中收集数据TabActivity
并存储它。我遇到的问题是TabActivity
似乎无法访问这些视图;当我findViewById()
与其中一个人打电话时,我得到一个NullPointerException
.
TabActivity
关于控制其包含的活动的确切工作方式,文档似乎很少。如果它在从一个活动切换到另一个活动时破坏了它,那么我所处的情况将是有意义的。我想知道实现上述目标的最佳方法。
src/com/vendor/MyTabActivity.java:
public class MyTabActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_tab_activity);
final Button saveButton = (Button) findViewById(R.id.save_button);
saveButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// NullPointerException happens here
String fieldValue = ((TextView) findViewById(R.id.text_field)).getText().toString();
}
});
}
}
资源/布局/my_tab_activity.xml:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost">
<LinearLayout>
<TabWidget android:id="@android:id/tabs"/>
<FrameLayout android:id="@android:id/tabcontent" />
<Button android:id="@+id/save_button"/>
</LinearLayout>
</TabHost>
src/com/vendor/NestedActivity.java:
public class NestedActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nested_activity);
}
}
资源/布局/nested_activity.xml:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout>
<EditText android:id="@+id/text_field"/>
</RelativeLayout>
</ScrollView>