Android应用程序在浏览Viewpager时卡住

Android应用程序在浏览Viewpager时卡住,android,android-viewpager,Android,Android Viewpager,在我的android应用程序中,我有3个片段。A B和C。我正在做一些XML解析和填充ListView。从A到B和B到C滑动非常平滑。但当我尝试从C到B和B到A滑动时,它会被卡住大约10秒钟,A->B->C是平滑的。C->B->A有问题。真烦人。有人能帮我解决这个问题吗?…提前谢谢 这是我的主要活动=> public class MainActivity extends FragmentActivity { private ViewPager mViewPager; pr

在我的android应用程序中,我有3个片段。A B和C。我正在做一些XML解析和填充ListView。从A到B和B到C滑动非常平滑。但当我尝试从C到B和B到A滑动时,它会被卡住大约10秒钟,A->B->C是平滑的。C->B->A有问题。真烦人。有人能帮我解决这个问题吗?…提前谢谢

这是我的主要活动=>

    public class MainActivity extends FragmentActivity {
    private ViewPager mViewPager;
    private ProgressDialog pd;
    Button settings;
    static TextView flashnews;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        SharedPreferences mlmprf = getSharedPreferences("malayalam", MODE_PRIVATE);
        final SharedPreferences.Editor mlmedit = mlmprf.edit();

        if(mlmprf.getBoolean("enable", true))
     {
         A.headflag="malayalam";
     }
     else
     {
         A.headflag="english";
     }

           flashnews=(TextView)findViewById(R.id.flashs);
       flashnews.setSelected(true);
       flashnews.setEllipsize(TruncateAt.MARQUEE);
       flashnews.setHorizontallyScrolling(true);
       flashnews.setSingleLine(true);
       flashnews.setLines(1);

      PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.pager_title_strip);
        pagerTabStrip.setDrawFullUnderline(true);
        pagerTabStrip.setTabIndicatorColor(Color.rgb(174, 1, 34));
        mViewPager = (ViewPager) findViewById(R.id.viewpager);
            mViewPager.setAdapter(new MyAdapter(this));
      }

 private class MyAdapter extends FragmentPagerAdapter{

        private Context mContext;
        private String[] frags = {A.class.getName(), B.class.getName(),C.class.getName()};

        public MyAdapter(FragmentActivity activity) {
            super(activity.getSupportFragmentManager());
            mContext = activity;
        }



        @Override
        public Fragment getItem(int pos) {
            return Fragment.instantiate(mContext, frags[pos]);
        }

        @Override
        public int getCount() {
            return frags.length;
        }

        @Override
        public CharSequence getPageTitle(int pos) {

            if(pos==0)
            return "A";

            if(pos==1)
            return "B";

            if(pos==2)
            return "C";

            else
            return null;


        }
    }
}

碎片a=>

    public class A extends Fragment{


    public static String urls;
    // XML node keys
    static final String KEY_HEAD = "item"; // parent node
    //static final String KEY_TITLE = "title";
    static final String KEY_DATE = "pubDate";
    public static String headflag="english";
    public static String[] Title;
    public static String[] Description;
    public static String[] Tit;
    public static String[] Tit2;
    public static String[] Desc;
    public static String[] Desc2;
    public static String[] image;
    int f=0;
    GridView list;
    HeadlinesAdapter adapter;
    private TextView mMessageView;
    private Button mClearButton;
    public ArrayList<HashMap<String, String>> newsList; 


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflating layout
        View v = inflater.inflate(R.layout.headlines_fragment, container, false);
        // We obtain layout references

        return v;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        // We set clear listener


        if(Headlines.headflag=="malayalam")
        {
            urls="http://www.abc.com/rssfeeds/19_18_17_25/1/rss.xml";


        }

        if(Headlines.headflag=="english")
        {
            urls="http://www.abc.com/en/rssfeeds/1_2_3_5/latest/rss.xml";


        }



    parse();
        populate_listview();    
    }


     public void populate_listview()
     {


        newsList = new ArrayList<HashMap<String, String>>();

        XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(urls); // getting XML from URL
        Document doc = parser.getDomElement(xml); // getting DOM element

        NodeList nl = doc.getElementsByTagName(KEY_HEAD);
        // looping through all song nodes <song>
        NodeList itemLst = doc.getElementsByTagName("item");
        String MarqueeStr="";

        for (int i = 0; i < nl.getLength(); i++) {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            Element e = (Element) nl.item(i);
            newsList.add(map);
            //MarqueeStr = MarqueeStr +" *** "+ Title[i];


     }

        list=(GridView)getActivity().findViewById(R.id.grid);

        // Getting adapter by passing xml data ArrayList
                 adapter=new HeadlinesAdapter(getActivity(), newsList);        
                 list.setAdapter(adapter);



    }

  public void parse()
     {

            URL url;

            try {

                url = new URL(urls);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                if((conn.getResponseCode() == HttpURLConnection.HTTP_OK)){
                      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                      DocumentBuilder db = dbf.newDocumentBuilder();
                      Document doc;
                      doc = db.parse(url.openStream());
                      doc.getDocumentElement().normalize();

                      NodeList itemLst = doc.getElementsByTagName("item");
                      Description = new String[itemLst.getLength()];//........
                      Title = new String[itemLst.getLength()];
                      Tit=new String[itemLst.getLength()];
                      Tit2=new String[itemLst.getLength()];
                      Desc=new String[itemLst.getLength()];
                      Desc2=new String[itemLst.getLength()];
                      image= new String[itemLst.getLength()];

                      for(int i=0; i < itemLst.getLength(); i++){

                            Node item = itemLst.item(i);
                            if(item.getNodeType() == Node.ELEMENT_NODE){
                                  Element ielem = (Element)item;
                                  NodeList title = ielem.getElementsByTagName("title");
                                  NodeList date = ielem.getElementsByTagName("pubDate");
                                  NodeList description = ielem.getElementsByTagName("description");
                                  Tit[i]= title.item(0).getChildNodes().item(0).getNodeValue();
                                  Desc[i]= description.item(0).getChildNodes().item(0).getNodeValue();
                                  Tit2[i]=Translate.title(Tit[i]);
                                  Desc2[i]=Translate.description(Desc[i]);
                                  if(Headlines.headflag=="malayalam")
                                    {
                                      Desc2[i]=Desc2[i].replace("read more","IqSpXÂ");
                                    }
                                  Title[i] =Tit2[i];
                                  if (Desc2[i].contains("<img ")){
                                      String img  = Desc2[i].substring(Desc2[i].indexOf("<img "));
                                      String cleanUp = img.substring(0, img.indexOf(">")+1);
                                      img = img.substring(img.indexOf("src=") + 5);
                                      int indexOf = img.indexOf("'");
                                      if (indexOf==-1){
                                          indexOf = img.indexOf("\"");
                                        }
                                      img = img.substring(0, indexOf);

                                //setImgLink(img);
                                    if(Headlines.headflag=="malayalam")
                                    {
                                        String img2=img.replace("files","files/imagecache/android_320");
                                        Description[i]=Desc2[i].replace(img,img2);
                                        image[i]=img2;
                                    }

                                else
                                {
                                    String img2=img.replace("files","files/imagecache/android_1_img");
                                    Description[i]=Desc2[i].replace(img,img2);
                                    image[i]=img2;
                                }
                                  }
                                else
                                {
                                    Description[i] =Desc2[i];
                                }



                            }

                          }

                        }
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (DOMException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ParserConfigurationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SAXException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
     }





}
公共类A扩展片段{
公共静态字符串URL;
//XML节点密钥
静态最终字符串KEY\u HEAD=“item”;//父节点
//静态最终字符串键\u TITLE=“TITLE”;
静态最终字符串键\u DATE=“pubDate”;
公共静态字符串headflag=“英语”;
公共静态字符串[]标题;
公共静态字符串[]说明;
公共静态字符串[]Tit;
公共静态字符串[]Tit2;
公共静态字符串[]Desc;
公共静态字符串[]Desc2;
公共静态字符串[]图像;
int f=0;
网格视图列表;
头线适配器;
私有文本视图mMessageView;
专用按钮mClearButton;
公共ArrayList新闻列表;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//充气布局
视图v=充气机。充气(R.layout.U碎片,容器,假);
//我们获得布局参考
返回v;
}
@凌驾
已创建视图上的公共void(视图,捆绑保存状态){
super.onViewCreated(视图,savedInstanceState);
//我们设置了清晰的侦听器
如果(标题.头旗==“马来语”)
{
URL=”http://www.abc.com/rssfeeds/19_18_17_25/1/rss.xml";
}
如果(标题.标题==“英语”)
{
URL=”http://www.abc.com/en/rssfeeds/1_2_3_5/latest/rss.xml";
}
parse();
填充_listview();
}
public void populate_listview()
{
newsList=newarraylist();
XMLParser=新的XMLParser();
String xml=parser.getXmlFromUrl(URL);//从URL获取xml
Document doc=parser.getDomeElement(xml);//获取DOM元素
NodeList nl=doc.getElementsByTagName(键头);
//循环通过所有歌曲节点
nodelistitemlst=doc.getElementsByTagName(“项”);
字符串MarqueeStr=“”;
对于(int i=0;i

public class B Fragment{



    static String urls;
    // XML node keys
    static final String KEY_HEAD = "item"; // parent node
    //static final String KEY_TITLE = "title";
    static final String KEY_DATE = "pubDate";
    public static String headflag="";
    int f=0;
    GridView list;
    KeralaAdapter adapter;
    ProgressBar loading;
    ArrayList<HashMap<String, String>> newsList;
    public static Kerala classnam;

        public static String[] Title;
        public static String[] Description;
        public static String[] Tit;
        public static String[] Tit2;
        public static String[] Desc;
        public static String[] Desc2;
        public static String[] image;
        public static String[] Date;
        public static String[] Flash;
        public static String[] Fl;
        public static String[] Fl2;




    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflating layout
        View v = inflater.inflate(R.layout.kerala_fragment, container, false);
        // We obtain layout references

        return v;

    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        // We set clear listener

        if(Headlines.headflag=="malayalam")
        {
            urls="http://www.abc.com/rssfeeds/17/1/rss.xml";


        }

        if(Headlines.headflag=="english")
        {
            urls="http://www.abc.com/en/rssfeeds/1/latest/rss.xml";


        }


        loading=(ProgressBar)getActivity().findViewById(R.id.loading);
        new ProgressAsyncTask().execute();

          }


     public void populate_listview()
     {

                newsList = new ArrayList<HashMap<String, String>>();

        XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(urls); // getting XML from URL
        Document doc = parser.getDomElement(xml); // getting DOM element

        NodeList nl = doc.getElementsByTagName(KEY_HEAD);
        // looping through all song nodes <song>
        NodeList itemLst = doc.getElementsByTagName("item");
        String MarqueeStr="";

        for (int i = 0; i < nl.getLength(); i++) {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            Element e = (Element) nl.item(i);

            //map.put(KEY_DATE, parser.getValue(e, KEY_DATE));

            newsList.add(map);


     }


        list=(GridView)getActivity().findViewById(R.id.grid2);


}

                  public class ProgressAsyncTask extends 
            AsyncTask<Void, Integer, Void> {

            int myProgress;

            @Override
            protected void onPreExecute() {
                // TODO Auto-generated method stub
                super.onPreExecute();
                                myProgress = 0;
                       }

            @Override
            protected void onPostExecute(Void result) {
                // TODO Auto-generated method stub
                super.onPostExecute(result);
                            adapter=new NationalAdapter(getActivity(), newsList);        
                    list.setAdapter(adapter);

                       }

            @Override
            protected Void doInBackground(Void... arg0) {
                // TODO Auto-generated method stub

                parse();
                populate_listview();
                                return null;
            }

            @Override
            protected void onProgressUpdate(Integer... values) {
                // TODO Auto-generated method stub
                       }

        }


        public void parse()
        {
            URL url;

            try {
                      url = new URL(urls);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                if((conn.getResponseCode() == HttpURLConnection.HTTP_OK)){
                      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                      DocumentBuilder db = dbf.newDocumentBuilder();
                      Document doc;
                      doc = db.parse(url.openStream());
                      doc.getDocumentElement().normalize();

                      NodeList itemLst = doc.getElementsByTagName("item");
                      Description = new String[itemLst.getLength()];//........
                      Title = new String[itemLst.getLength()];
                      Tit=new String[itemLst.getLength()];
                      Tit2=new String[itemLst.getLength()];
                      Desc=new String[itemLst.getLength()];
                      Desc2=new String[itemLst.getLength()];
                      image= new String[itemLst.getLength()];

                      for(int i=0; i < itemLst.getLength(); i++){

                            Node item = itemLst.item(i);
                            if(item.getNodeType() == Node.ELEMENT_NODE){
                                  Element ielem = (Element)item;
                                  NodeList title = ielem.getElementsByTagName("title");
                                  NodeList date = ielem.getElementsByTagName("pubDate");
                                  NodeList description = ielem.getElementsByTagName("description");
                                  Tit[i]= title.item(0).getChildNodes().item(0).getNodeValue();
                                  Desc[i]= description.item(0).getChildNodes().item(0).getNodeValue();
                                  Tit2[i]=Translate.title(Tit[i]);
                                  Desc2[i]=Translate.description(Desc[i]);
                                  if(Headlines.headflag=="malayalam")
                                    {
                                      Desc2[i]=Desc2[i].replace("read more","IqSpXÂ");
                                    }
                                  Title[i] =Tit2[i];
                                  if (Desc2[i].contains("<img ")){
                                      String img  = Desc2[i].substring(Desc2[i].indexOf("<img "));
                                      String cleanUp = img.substring(0, img.indexOf(">")+1);
                                      img = img.substring(img.indexOf("src=") + 5);
                                      int indexOf = img.indexOf("'");
                                      if (indexOf==-1){
                                          indexOf = img.indexOf("\"");
                                        }
                                      img = img.substring(0, indexOf);

                                //setImgLink(img);
                                    if(Headlines.headflag=="malayalam")
                                    {
                                        String img2=img.replace("files","files/imagecache/android_320");
                                        Description[i]=Desc2[i].replace(img,img2);
                                        image[i]=img2;
                                    }

                                else
                                {
                                    String img2=img.replace("files","files/imagecache/android_1_img");
                                    Description[i]=Desc2[i].replace(img,img2);
                                    image[i]=img2;
                                }
                                  }
                                else
                                {
                                    Description[i] =Desc2[i];
                                }



                            }

                          }

                        }
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (DOMException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ParserConfigurationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SAXException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }



        }


}
公共类B片段{
静态字符串URL;
//XML节点密钥
静态最终字符串KEY\u HEAD=“item”;//父节点
//静态最终字符串键\u TITLE=“TITLE”;
静态最终字符串键\u DATE=“pubDate”;
公共静态字符串headflag=“”;
int f=0;
网格视图列表;
Kerala适配器;
钢筋加载;
ArrayList新闻列表;
公共静态喀拉拉邦;
公共静态字符串[]标题;
公共静态字符串[]说明;
公共静态字符串[]Tit;
公共静态字符串[]Tit2;
公共静态字符串[]Desc;
公共静态字符串[]Desc2;
公共静态字符串[]图像;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
       View v = inflater.inflate(R.layout.kerala_fragment, container, false);

       **Log.i("Tag", "onCreateView");**        

        return v;
}