有片段的java活动(bug)与没有片段的java活动(ok)
我创建了一个用于学习的小应用程序。在主活动中有两个按钮:一个用于包含文本和微调器的片段活动,另一个用于不包含文本和微调器的片段活动
以下是正在工作的无片段活动的代码:
public class NoFragmentActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_no_fragment);
Spinner spinner = (Spinner) findViewById(R.id.planets_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, 安卓.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(安卓.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
activity_no_fragment.xml
文件只是textview和微调器
下面是片段的活动,它给了我这样一个bug:
public class SpinerActivity extends Activity { //with fragment
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_spiner); //shouldn't it be activity_spinner?
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.kontener, new PlaceholderFragment()) //kontener refers to fragment_spiner.xml
.commit();
}
Spinner spinner2 = (Spinner) findViewById(R.id.planets_spinner2);
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this,
R.array.planets_array, 安卓.R.layout.simple_spinner_item);
adapter2.setDropDownViewResource(安卓.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter2);
}
Activity_spiner.xml
是:
FrameLayout
(etc...)
安卓:id="@+id/container"
(etc...)
片段_尖晶石几乎与activity_no_fragment
相同:
RelativeLayout
(etc...)
安卓:id="@+id/kontener"
(etc...)
TextView
安卓:id="@+id/tekstspiner"
(etc...)
Spinner
安卓:id="@+id/planets_spinner2"
(etc...)
我有一些问题无法解决:
- 为什么我会有这样的错误?如何修复代码李>
- 在此行的SpinNeActivity文件中:
setContentView(R.layout.fragment_spiner);
是否应该有activity_微调器而不是fragment_微调器
我在没有微调器的情况下创建的另一个带有片段的空白活动在这里有activity_blank
(不像我的应用程序那样有*\u片段),并且工作正常
当我改变它时,我得到了NPE。为什么?我怎样才能解决它李>
编辑:这里是包含类和xml文件的zip文件:https://www.sendspace.com/file/ofh8yi
# 1 楼答案
在SpinePractivity中,设置同一布局两次。一个用于活动,另一个用于fragemnt。这就是为什么你要看两遍