Note that there are some explanatory texts on larger screens.

plurals
  1. POStarActivityForResult() leading to force close on returning Intent data
    primarykey
    data
    text
    <p>Here's a section of my code : </p> <pre><code>@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_settings: startActivityForResult(new Intent(MainActivity.this,Settings.class),1); break; } return true; } @Override public void onActivityResult(int requestCode,int resultCode,Intent data) { Toast.makeText(getBaseContext(),requestCode, Toast.LENGTH_SHORT); // This was causing the error. See the fantastic answer that's been provided for details. Comment out this this and it works ! if(requestCode==1) { if(resultCode==RESULT_OK) { String extraData=data.getData().toString(); minD=Integer.parseInt(extraData); Toast.makeText(getBaseContext(),minD, Toast.LENGTH_SHORT); } } } </code></pre> <p>Here's the code for Settings.java</p> <pre><code>package com.example.com.draft1; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Settings extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.settings); Button setbtn = (Button) findViewById(R.id.SetminDistance); setbtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Intent data=new Intent(); EditText mind=(EditText) findViewById(R.id.minDistance); String minDis =mind.getText().toString(); Intent data = new Intent(); data.setData(Uri.parse(minDis)); Toast.makeText(getBaseContext(), minDis, Toast.LENGTH_SHORT).show(); // intent.putExtra("minD", minDis); if (getParent() == null) { setResult(RESULT_OK, data); } else { getParent().setResult(RESULT_OK, data); } finish(); /* setResult(RESULT_OK, data); finish();*/ } }); } } </code></pre> <p>Now when I choose the menu option for <strong>Settings</strong> , the required activity opens up perfectly , however , when i attempt to return data , it leads to a force close</p> <p>Here's the Logcat reading that shows the error : </p> <pre><code>09-29 16:03:29.366: E/AndroidRuntime(766): FATAL EXCEPTION: main 09-29 16:03:29.366: E/AndroidRuntime(766): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=65 }} to activity {com.example.com.draft1/com.example.com.draft1.MainActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x1 09-29 16:03:29.366: E/AndroidRuntime(766): at android.app.ActivityThread.deliverResults(ActivityThread.java:2532) 09-29 16:03:29.366: E/AndroidRuntime(766): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2574) 09-29 16:03:29.366: E/AndroidRuntime(766): at android.app.ActivityThread.access$2000(ActivityThread.java:117) 09-29 16:03:29.366: E/AndroidRuntime(766): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:961) 09-29 16:03:29.366: E/AndroidRuntime(766): at android.os.Handler.dispatchMessage(Handler.java:99) 09-29 16:03:29.366: E/AndroidRuntime(766): at android.os.Looper.loop(Looper.java:130) 09-29 16:03:29.366: E/AndroidRuntime(766): at android.app.ActivityThread.main(ActivityThread.java:3683) 09-29 16:03:29.366: E/AndroidRuntime(766): at java.lang.reflect.Method.invokeNative(Native Method) 09-29 16:03:29.366: E/AndroidRuntime(766): at java.lang.reflect.Method.invoke(Method.java:507) 09-29 16:03:29.366: E/AndroidRuntime(766): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 09-29 16:03:29.366: E/AndroidRuntime(766): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 09-29 16:03:29.366: E/AndroidRuntime(766): at dalvik.system.NativeStart.main(Native Method) 09-29 16:03:29.366: E/AndroidRuntime(766): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1 09-29 16:03:29.366: E/AndroidRuntime(766): at android.content.res.Resources.getText(Resources.java:201) 09-29 16:03:29.366: E/AndroidRuntime(766): at android.widget.Toast.makeText(Toast.java:258) 09-29 16:03:29.366: E/AndroidRuntime(766): at com.example.com.draft1.MainActivity.onActivityResult(MainActivity.java:570) 09-29 16:03:29.366: E/AndroidRuntime(766): at android.app.Activity.dispatchActivityResult(Activity.java:3908) 09-29 16:03:29.366: E/AndroidRuntime(766): at android.app.ActivityThread.deliverResults(ActivityThread.java:2528) 09-29 16:03:29.366: E/AndroidRuntime(766): ... 11 more </code></pre> <p>Why am i encountering a force close here ?</p> <p>I'd really appreciate help here</p> <p>Thanks for the interest in the question</p> <p><strong>As Per Suggestions</strong></p> <pre><code>if(requestCode==1) { if(resultCode==RESULT_OK) { //String extraData=data.getData().toString(); //minD=Integer.parseInt(extraData); Toast.makeText(getBaseContext(),String.valueOf(requestCode), Toast.LENGTH_SHORT).show(); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload