【问题标题】:Unable to launch another activity from fragment in android studio无法从 android studio 中的片段启动另一个活动
【发布时间】: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&lt;&gt;(mContext, android.R.layout.simple_spinner_dropdown_item, msnArrayList);

我在片段中应用了相同的方法,它正在工作,但在我的新活动中却没有。

注意:如果没有调用任何方法,则显示活动。

【问题讨论】:

  • 我认为问题出在您的 Context mContext; 上。您没有给它任何值,而是将它作为空值传递给 ArrayAdapter。尝试在那里传递常规上下文。

标签: java android android-studio android-fragments


【解决方案1】:

看起来你没有初始化你的mContext。这意味着您将 null 传递给您的 ArrayAdapter()。

无论如何,您不应该存储您的上下文,因为您的上下文就是您的活动。 你可以用this:

msnAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, msnArrayList);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2013-05-26
    相关资源
    最近更新 更多