要将变量从Fragment发送到Activity,我使用了putExtra和extras.getString。但是,我发现在使用Log.e来检查值时由于传递变量= null而导致出现NullPointerException。我开始活动后会发生这种情况。
因此,我如何防止这种情况发生。从而保持变量的值。
片段代码:
Integer IDPasser;
Intent intent = new Intent(getActivity(), ArticleViewer.class);
IDPasser = (Integer) data.ArticleID.toArray()[position];
intent.putExtra("ArticleID",IDPasser);
Log.e("Passer", IDPasser.toString()); //Shows that value is not = null.
startActivity(intent);
活动代码:
Bundle extras = getIntent().getExtras();
if (extras != null) {
Integer IDPasser = extras.getInt("ArticleID");
Log.e("TESTER", IDPasser.toString()); //NullPointerException due to IDPasser becoming = null.
}
最佳答案
Fragment
代码很好。在Activity
中:
int idPasser = getIntent().getIntExtra("ArticleID", 0);
getIntExtra()
中的第二个参数是默认值,如果未找到与键int
对应的"ArticleID"
附加字符,则返回默认值。