Ho salvato la mia Main Activity.
Ecco il codice xml recuperato.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/superLayout" android:background="@drawable/w3" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/leftTop" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="0dp" android:layout_marginTop="0dp" android:src="@drawable/screwed" /> <ImageView android:id="@+id/rightTop" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="0dp" android:layout_marginTop="0dp" android:src="@drawable/screwed" /> <ImageView android:id="@+id/leftBottom" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true" android:layout_marginLeft="0dp" android:layout_marginBottom="0dp" android:src="@drawable/screwed" /> <ImageView android:id="@+id/rightBottom" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" android:layout_marginRight="0dp" android:layout_marginBottom="0dp" android:src="@drawable/screwed" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="30dp" android:layout_marginTop="30dp" android:layout_marginRight="30dp" android:layout_marginBottom="30dp" android:id="@+id/scrollView" > <RelativeLayout android:id="@+id/mainLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/celeste"> </RelativeLayout> </ScrollView> </RelativeLayout>Mi sarebbe dispiaciuto doverlo riscrivere di sana pianta, anche se sarebbe servito come esercizio.
Ora scrivo il richiamo di elementi dal database.
public void leggiDaDatabase(String currentCat){ Cursor crs=helper.query(currentCat); do{ LinearLayout layout=new LinearLayout(this); ImageView imageView=new ImageView(this); Bitmap bmp=BitmapFactory.decodeByteArray(crs.getBlob(numImmagine), 0, crs.getBlob(numImmagine).length); imageView.setImageBitmap(bmp); layout.addView(imageView); TextView txtEtichetta =new TextView(this); txtEtichetta.setText(crs.getString(numEtichetta)); layout.addView(txtEtichetta); TextView txtCategoria=new TextView(this); txtCategoria.setText(crs.getString(numCategoria)); layout.addView(txtCategoria); LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(100,100); layout.setGravity(0); layout.setOrientation(LinearLayout.VERTICAL); mainLayout.addView(layout); }while(crs.moveToNext()); }E lo faccio chiamare così dall'evento onStart() prevedendo che dovrà essere usato al rientro da un'altra activity:
@Override public void onStart(){ super.onStart(); if(categoriaCorrente==null) categoriaCorrente="iniziale"; try{ leggiDaDatabase(categoriaCorrente); }catch(Exception e){} }
Devo sperimentare se funziona.
Ma non avendo ancora immagini nel database mi preparo il "terreno" per crearle.
Creo l'eventListener per il layout principale al click lungo, per chiamare l'activity "ImagePicker" che sceglie le immagini dalla memoria".
Ecco l'xml di ImagePicker:
<RelativeLayout xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.progettoultimo.ImagePicker" > <ImageView android:id="@+id/imageView1" android:layout_width="200dp" android:layout_height="200dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="27dp" android:layout_marginTop="24dp" android:src="@drawable/ic_launcher" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="24dp" android:layout_marginTop="10dp" android:ems="10" > <requestFocus /> </EditText> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="80dp" android:layout_marginTop="70dp" > <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="RadioButton" /> <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" /> </RadioGroup> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="16dp" android:layout_marginRight="150dp" android:text="INVIA" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="16dp" android:layout_marginRight="30dp" android:text="ANNULLA" /> </RelativeLayout>E quindi creo l'evento OnLongClickListener per il mainLayout in modo da chiamare quest'altra activity:
mainLayout.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { Intent intent=new Intent(MainActivity.this,ImagePicker.class); startActivity(intent); return false; } });Ho sperimentato, e funziona.