【发布时间】:2020-08-15 22:24:49
【问题描述】:
我有一个片段,我试图在单击按钮时调用一个新活动。
btnLoadLimit.setOnClickListener(v -> {
Intent intent = new Intent(getActivity(), DataActivity.class);
startActivity(intent);
});
数据活动
public class DataActivity extends AppCompatActivity {
Context mContext;
@BindView(R.id.smart_msn_spinner)
Spinner msnSpinner;
ArrayList<String> msnArrayList = new ArrayList<>(Arrays.asList("Select MSN","002998002010" )); //"002999002020"
ArrayAdapter<String> msnAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
msnAdapter = new ArrayAdapter<>(mContext, android.R.layout.simple_spinner_dropdown_item, msnArrayList);
msnSpinner.setAdapter(msnAdapter);
msnSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedMeterNo = msnArrayList.get(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
当我点击 btnLoadLimit 按钮时,我的应用程序正在关闭并出现以下错误
无法启动活动 ComponentInfo{com.thumbsol.accuratemobileassetsmanagament/com.thumbsol.accuratemobileassetsmanagament.fragment.DataActivity}:java.lang.NullPointerException:尝试调用虚拟方法 'java.lang.Object android.content.Context.getSystemService (java.lang.String)' 在空对象引用上
在 com.thumbsol.accuratemobileassetsmanagament.fragment.DataActivity.onCreate(DataActivity.java:122)
122 的行是msnAdapter = new ArrayAdapter<>(mContext, android.R.layout.simple_spinner_dropdown_item, msnArrayList);
我在片段中应用了相同的方法,它正在工作,但在我的新活动中却没有。
注意:如果没有调用任何方法,则显示活动。
【问题讨论】:
-
我认为问题出在您的 Context mContext; 上。您没有给它任何值,而是将它作为空值传递给 ArrayAdapter。尝试在那里传递常规上下文。
标签: java android android-studio android-fragments