如何解决无法从Android Studio中的片段启动其他活动
我有一个片段,试图在单击按钮时调用一个新活动。
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,msnArrayList);
我在片段中应用的方法相同,并且有效,但是在我的新活动中却没有。
注意::如果未调用任何方法,则显示活动。
解决方法
好像您没有初始化mContext
。这意味着您正在将null传递给ArrayAdapter()。
无论如何,您都不应该存储上下文,因为上下文是您的活动。
您可以只使用this
:
msnAdapter = new ArrayAdapter<>(this,android.R.layout.simple_spinner_dropdown_item,msnArrayList);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。