Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListView和GridView在选项卡开关之间被清除_Android_Listview_Gridview_Android Listview_Fragment - Fatal编程技术网

Android ListView和GridView在选项卡开关之间被清除

Android ListView和GridView在选项卡开关之间被清除,android,listview,gridview,android-listview,fragment,Android,Listview,Gridview,Android Listview,Fragment,我有一个包含3个选项卡的活动。每次我在选项卡之间切换时,我的ListView和GridView(在第一个选项卡上)都会被清除,有趣的是ArrayList包含了之前下载的所有数据,如果我调用addToGrid()函数,ListView就会被很好地填充 为什么在选项卡之间切换时清除列表和网格视图。是否在每个选项卡开关上重新创建包含的片段?我是否需要在每个选项卡切换之间查询数据库并重新填充视图 谢谢 顺便说一下,我在onResume函数中添加了一个“if”语句。如果我保留“If”语句,listview

我有一个包含3个选项卡的活动。每次我在选项卡之间切换时,我的ListView和GridView(在第一个选项卡上)都会被清除,有趣的是ArrayList包含了之前下载的所有数据,如果我调用addToGrid()函数,ListView就会被很好地填充

为什么在选项卡之间切换时清除列表和网格视图。是否在每个选项卡开关上重新创建包含的片段?我是否需要在每个选项卡切换之间查询数据库并重新填充视图

谢谢

顺便说一下,我在onResume函数中添加了一个“if”语句。如果我保留“If”语句,listview会将行加倍,并在切换回时一次又一次地重新填充它。但是当“if”语句打开时,我的ListView在Resume上保持为空,因为正如我所提到的,ArrayList仍然拥有所有数据

摘自包含ListView的片段:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            super.onCreateView(inflater, container, savedInstanceState);
            v = inflater.inflate(R.layout.offers_view, null, false);                                    

            SharedPreferences preferences = getActivity().getSharedPreferences("USERINFO", 
                    Context.MODE_PRIVATE);
            user = preferences.getString("name", null);


            Button showAllUserImages = (Button) v.findViewById(R.id.showAllUserImages);
            showAllUserImages.setOnClickListener(new OnClickListener()  {
                @Override
                  public void onClick(View v)  {                    
                    Intent i = new Intent(getActivity(), AllUserImages.class);
                    startActivity(i);                      
                }                
               }); 

            RelativeLayout topLoc = (RelativeLayout) v.findViewById(R.id.topLocationsBtn);
            topLoc.setOnClickListener(new OnClickListener()  {
                @Override
                  public void onClick(View v)  {                    
                       Intent loc = new Intent(getActivity(), com.fideli.top.guide.TopLocations.class);
                       startActivity(loc);                         
                    }                
               }); 

            RelativeLayout guide = (RelativeLayout) v.findViewById(R.id.guideBtn);
            guide.setOnClickListener(new OnClickListener()  {
                @Override
                  public void onClick(View v)  {                    
                       Intent i= new Intent(getActivity(), com.fideli.top.guide.GloveGuide.class);
                       startActivity(i);                       
                    }                
               }); 



          return v;          
    }



    @Override
    public void onPause() {     
        super.onPause();
        System.out.println("paused!");


    }

    @Override
    public void onResume() {        
        super.onResume();

        if(imageItems.isEmpty()){
        getInfoFromDB();

        }

        if(tasteMakersList.isEmpty()){
        getTastemakers();
        }

        if(feedList.isEmpty()){
        downloadFeed();
        }

    }



   private void downloadFeed() {

       AsyncHttpClient client = new AsyncHttpClient();      
        System.out.println("Downloading Feed!!");
        client.get("http://www.edmondvarga.com/android_dev/fideli/get-relations.php?mainUser=" + user, null, 
                                    new JsonHttpResponseHandler() {             
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                try {                                       
                    JSONArray contacts = response.getJSONArray("info");

                    for (int i=0; i< contacts.length();i++){
                        JSONObject json = contacts.getJSONObject(i);                            

                        String followedUser = json.getString("folwed_users");                       
                        getFeed(followedUser);

                    }                   
                } catch (JSONException e) {                 
                    e.printStackTrace();
                }       
            }  

         });


    }



    public void getInfoFromDB(){

        datasource = new SQLiteDataSource(getActivity());
        datasource.open();


        List<ImageItem> values = datasource.getAllImageItems();
        for (int i = 0; i < values.size(); i++) {

            ImageItem ii = new ImageItem(null, null);

            ii.setImage(values.get(i).getImage());
            ii.setUser(values.get(i).getUser());
            ii.setUserId(values.get(i).getUserId());
            ii.setLikes(values.get(i).getLikes());
            ii.setDescription(values.get(i).getDescription());
            ii.setLocation(values.get(i).getLocation());    
            ii.setAddress(values.get(i).getAddress());
            ii.setCity(values.get(i).getCity());
            ii.setLat(values.get(i).getLat());
            ii.setLng(values.get(i).getLng());          


            imageItems.add(ii);
            addToGrid();
        }

    }

            public void addToGrid() {
                gridView = (GridView) v.findViewById(R.id.gridView);
                customGridAdapter = new GridViewAdapter(getActivity(), R.layout.row_grid, imageItems);          
                gridView.setAdapter(customGridAdapter);         
                gridView.setOnItemClickListener(this); 
            }   
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
super.onCreateView(充气机、容器、保存状态);
v=充气机充气(R.layout.u视图,空,假);
SharedReferences首选项=getActivity().GetSharedReferences(“USERINFO”,
上下文。模式(私人);
user=preferences.getString(“name”,null);
按钮showAllUserImages=(按钮)v.findViewById(R.id.showAllUserImages);
showAllUserImages.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
意图i=新意图(getActivity(),AllUserImages.class);
星触觉(i);
}                
}); 
RelativeLayout topLoc=(RelativeLayout)v.findViewById(R.id.topLocationsBtn);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent loc=newintent(getActivity(),com.fideli.top.guide.TopLocations.class);
星触觉(loc);
}                
}); 
相对性指南=(相对性指南)v.findViewById(R.id.guideBtn);
guide.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent i=newintent(getActivity(),com.fideli.top.guide.GloveGuide.class);
星触觉(i);
}                
}); 
返回v;
}
@凌驾
public void onPause(){
super.onPause();
System.out.println(“暂停!”);
}
@凌驾
在Resume()上公共无效{
super.onResume();
if(imageItems.isEmpty()){
getInfoFromDB();
}
if(tasteMakersList.isEmpty()){
getTastemakers();
}
if(feedList.isEmpty()){
下载feed();
}
}
私有void下载提要(){
AsyncHttpClient=新的AsyncHttpClient();
System.out.println(“下载提要!!”;
client.get(“http://www.edmondvarga.com/android_dev/fideli/get-relations.php?mainUser=“+用户,空,
新的JsonHttpResponseHandler(){
@凌驾
成功时的公共void(int statusCode,Header[]headers,JSONObject响应){
试试{
JSONArray contacts=response.getJSONArray(“info”);
对于(int i=0;i
您的视图很可能会被破坏,但片段可能不会。我知道,当用户导航到多个页面时,在
ViewPager
中会发生这种情况。因此,如果
imageItems
变量是一个实例变量,则不会重新创建它,因为片段仍然被创建。请参见t中的生命周期图