0
我实际上有两个活动。第一个是打电话给对方得到结果。调用片段方法引发NullPointerException异常
的startActivityForResult部分是好的。请求代码和结果代码都可以。
但它抛出Context.getResources() NullPointerException,我不明白为什么。我知道这个例外是什么意思,但在这个特殊情况下,我不明白。
这里是我的源代码:
的onCreate之前(类范围)
ComponentsFragment componentsFragment;
在的onCreate
componentsFragment = new ComponentsFragment();
在按钮单击事件
Intent i = new Intent(ReportActivity.this, ManageComponentsActivity.class);
i.putExtra("action", PICK_COMPONENT_REQUEST);
startActivityForResult(i, PICK_COMPONENT_REQUEST);
在第二活动
Toast.makeText(c, "*****activity started for result", Toast.LENGTH_LONG).show();
Component component = (Component) parent.getItemAtPosition(position);
Toast.makeText(c, "****component : " + component.getName(), Toast.LENGTH_LONG).show();
Intent i = new Intent();
i.putExtra("component_name", component.getName());
setResult(RESULT_OK, i);
finish();
在第一活动 - onActivityResult
if (requestCode == PICK_COMPONENT_REQUEST && resultCode == RESULT_OK) {
Toast.makeText(this, "*****on activity result", Toast.LENGTH_LONG).show();
Toast.makeText(this, "*****component_name : " + data.getStringExtra("component_name"), Toast.LENGTH_LONG).show();
Toast.makeText(this, "*****report_id : " + report_id, Toast.LENGTH_LONG).show();
Toast.makeText(this, "*****category_id : " + category_id, Toast.LENGTH_LONG).show();
try {
if (componentsFragment == null) {
Toast.makeText(this, "*****componentsFragment IS NULL", Toast.LENGTH_LONG).show();
}
//componentsFragment.AddComponentItem(data.getStringExtra("component_name"), report_id, category_id);
componentsFragment.AddComponentItem("Fenêtre", "1", "1");
componentsFragment.RefreshList("1", "1");
}
catch (Exception e) {
Toast.makeText(this, String.valueOf(e), Toast.LENGTH_LONG).show();
}
}
对于 '厨房' 的示例部件,实际输出是:
*****活动开始为结果
*****组分:厨房
*****上的活动结果
***** COMPONENT_NAME:厨房
***** REPORT_ID:1
***** CATEGORY_ID:1
抛出异常
所以componentsFragment不为空...
对不起,我有一些问题,我logcat的,所以我实际上敬酒工作:(