在我的 android 应用程序中,我有 3 个 Fragments.A,B,C。当我像 B->C->A 一样滑动时,在片段 A 中调用 onViewCreated 方法,因此应用程序变慢。我想停止调用这个 onViewCreated页面滑动。我们如何才能让 onViewCreated 在创建 Mainactivity 时只被调用一次。在此先感谢..
主要活动=>
public class MainActivity extends FragmentActivity {
private ViewPager mViewPager;
private ProgressDialog pd;
Button settings;
static TextView flashnews;
public static int stopflag=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Headlines.parse();
SharedPreferences mlmprf = getSharedPreferences("malayalam", MODE_PRIVATE);
final SharedPreferences.Editor mlmedit = mlmprf.edit();
if(mlmprf.getBoolean("enable", true))
{
Headlines.headflag="malayalam";
}
else
{
Headlines.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));
// We get UI references
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();
}
}
}