поворот экрана и обновление в реальном времени gridview android - PullRequest
0 голосов
/ 21 октября 2011

У меня большие сомнения по поводу утечки памяти и поворота экрана. Я знаю, что активность разрушается, когда это происходит, и начинается новое. С моим кодом лучший способ показать вид сетки? (это действие является частью действия с вкладками, поэтому в основном я получаю изображения из веб-служб и помещаю их на объект, используя AsyncTask)

Я хотел бы показать снимки одновременно с сохранением их на объекте. Как симуляция ajax ... это возможно? на данный момент все они показываются на старте или резюме.

Кроме того, я здесь сталкиваюсь с утечкой памяти?

последний вопрос, как мне показать фотографии в сетке

мой код:

public class LoteFotosActivity extends Activity {

Sistema sis=Sistema.getInstance();

Lote lote;
GridView gridview;
ImageAdapter iA;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.lote_foto_view);
    Bundle extras = getIntent().getExtras();
    lote=sis.getLoteDetalle(extras.getInt("LoteID"));

    gridview = (GridView) findViewById(R.id.gridview);
    gridview.setAdapter(iA=new ImageAdapter(this));

    gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            Toast.makeText(LoteFotosActivity.this, "" + position, Toast.LENGTH_SHORT).show();
        }
    });

}

public class ImageAdapter extends BaseAdapter {
    private Context mContext;

    public ImageAdapter(Context c) {
        mContext = c;
    }

    public int getCount() {
        return lote.FOTOS.size();
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {  // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(200,200));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }

        imageView.setImageBitmap(lote.FOTOS.get(position));
        return imageView;
    }

}
//test looking
public void onResume() { 
    super.onResume();
    Toast.makeText(this,"ON RESUME",
            Toast.LENGTH_SHORT).show(); 
//  gridview.setAdapter(new ImageAdapter(this));
//  foto.setImageDrawable(lote.FOTOS.get(0));
}
public void onPause() { 
    super.onPause();
    Toast.makeText(this,"onPause",
            Toast.LENGTH_SHORT).show(); 
    iA=null;
    gridview.setAdapter(iA=new ImageAdapter(this));
//  foto.setImageDrawable(lote.FOTOS.get(0));
}

Спасибо заранее!

Ответы [ 2 ]

1 голос
/ 01 декабря 2014

Для API 13+ размер экрана также должен обрабатываться:

android:configChanges="orientation|screenSize"
1 голос
/ 21 октября 2011

Я думаю, вы должны добавить это к своей деятельности

android:configChanges="orientation" 

, чтобы избежать разрушающей проблемы при повороте экрана ... с этим вам не нужно сохранять состояние для восстановления,в этом нет необходимости, поскольку действие не уничтожается и не воссоздается каждый раз, когда изменяется поворот экрана

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...