Autore Topic: controllo gallery img  (Letto 432 volte)

Offline Ale

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
controllo gallery img
« il: 03 Ottobre 2011, 10:40:38 CEST »
0
Salve a tutti, non sono proprio un esperto... Ho un problema con un controllo (avanti/indietro) di una galleria immagini (un adattamento del sample MultiRes di android). Ho aggiunto un pulsante PREV, ma ho problemi per passare dalla prima all'ultima img (l'app va in crash). In avanti non ho problemi, come pure per passare indietro da altre posizioni che non siano la prima. Suggerimenti? Questo il codice...

Codice (Java): [Seleziona]
package sj.pics;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public final class sj extends Activity {

private int mCurrentPhotoIndex = 0;
private int[] mPhotoIds = new int[] {R.drawable.photo_0, R.drawable.photo_1, R.drawable.photo_2, R.drawable.photo_3, R.drawable.photo_4, R.drawable.photo_5, R.drawable.photo_6, R.drawable.photo_7, R.drawable.photo_8, R.drawable.photo_9, R.drawable.photo_10};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

showPhoto(mCurrentPhotoIndex);

Button nextButton = (Button) findViewById(R.id.next_button);
nextButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mCurrentPhotoIndex = (mCurrentPhotoIndex + 1)
% mPhotoIds.length;
showPhoto(mCurrentPhotoIndex);
}
});

/** Pulsante PREV */
Button prevButton = (Button) findViewById(R.id.prev_button);
prevButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mCurrentPhotoIndex = (mCurrentPhotoIndex - 1)
% mPhotoIds.length;
showPhoto(mCurrentPhotoIndex);

/** Qui non va...  */
if (mCurrentPhotoIndex < 0){
mCurrentPhotoIndex = mPhotoIds.length - 1;
showPhoto(mCurrentPhotoIndex);
}
}
});
}

@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putInt("photo_index", mCurrentPhotoIndex);
super.onSaveInstanceState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
mCurrentPhotoIndex = savedInstanceState.getInt("photo_index");
showPhoto(mCurrentPhotoIndex);
super.onRestoreInstanceState(savedInstanceState);
}

private void showPhoto(int photoIndex) {
ImageView imageView = (ImageView) findViewById(R.id.image_view);
imageView.setImageResource(mPhotoIds[photoIndex]);
}
}