Если мы изменим режим ориентации, он сбросит GridVIew. - PullRequest
1 голос
/ 07 марта 2012

Привет, я делаю простую демонстрацию для просмотра сетки.У меня есть проблема, касающаяся изменения макета.

Когда моя демонстрационная программа работает в режиме Ladscape, она сохраняет значения флажков.но когда я меняю ориентацию на любой режим.он снова вызвал метод onCreate () и сбросил все значения.Может ли кто-нибудь предложить мне.как сохранить значения после изменения ориентации.

Вот мой код:

btnSubmit = (Button) findViewById(R.id.editButton);
        btnSubmit.setOnClickListener(this);


        gridview.setAdapter(new ImageAdapter(this, status));
        gridview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {

                ImageView imgview = (ImageView) v.findViewById(R.id.imgvew);
                imgview.setImageResource(R.drawable.check_box_checked);
            }

        });



@Override
    public void onConfigurationChanged(android.content.res.Configuration newConfig) {

        if (newConfig.ORIENTATION_LANDSCAPE == Configuration.ORIENTATION_PORTRAIT){

        }
    };


@Override
    public void onClick(View v) {
                status = true;
        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this, status));
            }

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Вам необходимо переопределить два метода:

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    // Read values from the "savedInstanceState"-object and put them in your textview
    if (icicle != null)
    {
       value = icicle.getLong("param");
    }
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    // Save the values you need from your textview into "outState"-object
    outState.putLong("param", value);
    super.onSaveInstanceState(outState);
}
0 голосов
/ 07 марта 2012

Вместо установки адаптера вашего gridview в oncreate поместите весь ваш код в onResume (), он будет работать правильно.

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