【问题标题】:When i rotate the device (Android), the adapter variable receives null?当我旋转设备(Android)时,适配器变量接收 null?
【发布时间】:2013-02-05 13:49:34
【问题描述】:

在下面的代码中(为清楚起见,为清晰起见),当我旋转设备时,适配器变量接收 null,gridView 变量接收 null。

谁能帮我在旋转设备屏幕后保留适配器和gridView?

谢谢。

(抱歉英语不好)

    public class FlickrXmlFragment extends Fragment {

    private GridView gridView;
    private FlickrGridViewAdapter adapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        //...
        View view = darkInflater.inflate(R.layout.fragment_flickr_xml,
                container, false);
        //...
        gridView = (GridView) view.findViewById(R.id.flickr_gridView);

        return view;
    }

    class FlickrPhotoSearchThread extends
            AsyncTask<String, Void, List<FlickrImagem>> {

        @Override
        protected void onPreExecute() { //... process...    }

        @Override
        protected List<FlickrImagem> doInBackground(String... params) { //process... }

        @Override
        protected void onPostExecute(List<FlickrImagem> result) {
            //...
            adapter = new FlickrGridViewAdapter(getActivity(), 0, result);
            gridView.setAdapter(adapter);
            adapter.notifyDataSetChanged();
            //...
        }
    }
}

【问题讨论】:

  • 再次获取onResume中的那些值并使用它,因为活动会在轮换时重新启动,这意味着您的数据可能会丢失
  • 你可以看看这个链接stackoverflow.com/questions/4584015/…

标签: android rotation save instance adapter


【解决方案1】:

处理您的活动的方向更改。

请参考:http://developer.android.com/guide/topics/manifest/activity-element.html#config

像这样声明你的活动:

<activity android:name=".MyActivity"
          android:configChanges="orientation|keyboardHidden"
          android:label="@string/app_name">

【讨论】:

  • 谢谢!我刚刚声明了 android:configChanges="orientation" 并且没有工作
  • 您可能应该保存状态然后恢复它,这种方法使活动不会重新启动。见this
猜你喜欢
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多