uriString 空指针错误

Joh*_*Joe 4 android uri image android-intent

在 Activity A 中,它有 listView 和一个图标,用于意图 Activity B。

\n\n
 listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { //listview\n            public void onItemClick(AdapterView<?> listView, View view, final int position, long id) {\n                Expenses o = (Expenses) obj.getItem(position);\n                Uri image = o.getImage();\n                Intent intent = new Intent(QuickExpenses.this,AddExpenses.class);\n                intent.putExtra("image",image.toString());\n                startActivity(intent);\n            }\n        });\n\n  @Override\n    public boolean onOptionsItemSelected(MenuItem item) { // get action bar icon\n    switch (item.getItemId()) {\n            case R.id.action_add_task:\n                mClickedPosition = -1;\n                Intent intent = new Intent(QuickExpenses.this, AddExpenses.class);\n                startActivityForResult(intent, PROJECT_REQUEST_CODE);\n                return true;\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

活动B

\n\n
 if(getIntent().getExtras()!=null) { //if  has value pass from A\n            Uri imageUri=Uri.parse(getIntent().getStringExtra("image"));\n            if(imageUri!=null) {\n                imageView.setImageURI(imageUri);\n            }\n            else {\n              Toast.makeText(getApplication(),"null",Toast.LENGTH_SHORT).show();\n            }\n        }\n
Run Code Online (Sandbox Code Playgroud)\n\n

日志

\n\n
12-22 01:26:12.217  25588-25588/com.example.tony.monthlyexpenses E/AndroidRuntime\xef\xb9\x95 FATAL EXCEPTION: main\n    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tony.monthlyexpenses/com.example.tony.monthlyexpenses.AddExpenses}: java.lang.NullPointerException: uriString\n            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2372)\n            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424)\n            at android.app.ActivityThread.access$600(ActivityThread.java:169)\n            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1388)\n            at android.os.Handler.dispatchMessage(Handler.java:107)\n            at android.os.Looper.loop(Looper.java:194)\n            at android.app.ActivityThread.main(ActivityThread.java:5433)\n            at java.lang.reflect.Method.invokeNative(Native Method)\n            at java.lang.reflect.Method.invoke(Method.java:525)\n            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924)\n            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691)\n            at dalvik.system.NativeStart.main(Native Method)\n     Caused by: java.lang.NullPointerException: uriString\n
Run Code Online (Sandbox Code Playgroud)\n\n

我按 listview ,一切看起来都很好,我可以看到图像显示在 imageview 中,但是当我单击图标时,应用程序崩溃了。我已经添加了,if(imageUri!=null)但还是崩溃了。为什么会出现这种情况呢?

\n\n

我关注这个/sf/answers/1761990471/

\n\n

错误指向 Uri imageUri=Uri.parse(getIntent().getStringExtra("image"));

\n

Rah*_*hul 7

更新您的支票。您正在尝试解析可能为 null 的 String,因此在将其解析为 uri 之前检查是否为 null 值。

String image = getIntent().getExtras().getString("image");
if(image!= null) {
Uri imageUri=Uri.parse(image);
}
Run Code Online (Sandbox Code Playgroud)