Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid Dynamic ImageViews
    text
    copied!<p>I am making a custom layout in which I want to add the image view dynamically from the gallery. But as soon as I pick the image from the gallery , I got force close. I am unable to get what is the error behind the same.</p> <p>Here is my code..</p> <pre><code>public class Dynamic extends Activity { int i; ImageView[] img_items; ArrayList&lt;String&gt; values = new ArrayList&lt;String&gt;(); LinearLayout imageLayout; Button btn; private static int RESULT_LOAD_IMAGE = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dynamic_load); imageLayout = (LinearLayout)findViewById(R.id.image_layout); btn = (Button)findViewById(R.id.btn_ADD); img_items = new ImageView[values.size()]; btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub values.add("AA"); Intent i = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, RESULT_LOAD_IMAGE); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RESULT_LOAD_IMAGE &amp;&amp; resultCode == RESULT_OK &amp;&amp; null != data) { Uri selectedImage = data.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); /*ImageView imageView = (ImageView) findViewById(R.id.imgView); imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));*/ //Creating the image layouts dynamically for( i=0;i&lt;values.size();i++){ img_items[i] = new ImageView(Dynamic.this); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); params.setMargins(10, 10, 0, 0); img_items[i].setLayoutParams(params); } img_items[i].setImageBitmap(BitmapFactory.decodeFile(picturePath)); imageLayout.addView(img_items[i]); } } } </code></pre> <p>LOG CAT</p> <pre><code>10-05 16:52:03.422: D/AndroidRuntime(451): Shutting down VM 10-05 16:52:03.422: W/dalvikvm(451): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 10-05 16:52:03.549: E/AndroidRuntime(451): FATAL EXCEPTION: main 10-05 16:52:03.549: E/AndroidRuntime(451): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://media/external/images/media/1 }} to activity {com.example.dynamicloading/com.example.dynamicloading.Dynamic}: java.lang.ArrayIndexOutOfBoundsException 10-05 16:52:03.549: E/AndroidRuntime(451): at android.app.ActivityThread.deliverResults(ActivityThread.java:3515) 10-05 16:52:03.549: E/AndroidRuntime(451): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557) 10-05 16:52:03.549: E/AndroidRuntime(451): at android.app.ActivityThread.access$2800(ActivityThread.java:125) 10-05 16:52:03.549: E/AndroidRuntime(451): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063) 10-05 16:52:03.549: E/AndroidRuntime(451): at android.os.Handler.dispatchMessage(Handler.java:99) 10-05 16:52:03.549: E/AndroidRuntime(451): at android.os.Looper.loop(Looper.java:123) 10-05 16:52:03.549: E/AndroidRuntime(451): at android.app.ActivityThread.main(ActivityThread.java:4627) 10-05 16:52:03.549: E/AndroidRuntime(451): at java.lang.reflect.Method.invokeNative(Native Method) 10-05 16:52:03.549: E/AndroidRuntime(451): at java.lang.reflect.Method.invoke(Method.java:521) 10-05 16:52:03.549: E/AndroidRuntime(451): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 10-05 16:52:03.549: E/AndroidRuntime(451): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 10-05 16:52:03.549: E/AndroidRuntime(451): at dalvik.system.NativeStart.main(Native Method) 10-05 16:52:03.549: E/AndroidRuntime(451): Caused by: java.lang.ArrayIndexOutOfBoundsException 10-05 16:52:03.549: E/AndroidRuntime(451): at com.example.dynamicloading.Dynamic.onActivityResult(Dynamic.java:81) 10-05 16:52:03.549: E/AndroidRuntime(451): at android.app.Activity.dispatchActivityResult(Activity.java:3890) 10-05 16:52:03.549: E/AndroidRuntime(451): at android.app.ActivityThread.deliverResults(ActivityThread.java:3511) 10-05 16:52:03.549: E/AndroidRuntime(451): ... 11 more 10-05 16:57:04.140: I/Process(451): Sending signal. PID: 451 SIG: 9 </code></pre>
 

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