Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Android中调用片段内的函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的 android应用程序中,我使用viewpager.I有两个fragment.Fragment1和Fragment2.Iam在fragment.ie上调用两个不同的函数,在Fragment1上调用’function1′,在fragment2上调用’function2′.当我启动应用程序时,这两个函数都有一起调用.我想在启动时调用’function1′,只在我刷到Fragment2时调用’function2′.我可以这样做吗?提前致谢…..

这是我的代码,

片段1 =>

public class Fragment1 extends Fragment{


    public static String @L_772_10@url="http://www.abcd.com/en/RSS@L_772_10@s/1_2_3_5/latest/RSS.xml";
    static String URL = "";
    static final String KEY_HEAD = "item"; // parent node
    static final String KEY_DATE = "pubDate";
    public static String headflag="";
    int f=0;
    GridView list;
        HeadlinesAdapter adapter;
        private TextView mmessageView;
    private Button mClearButton;

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

        View v = inflater.inflate(R.layout.first_fragment,container,falsE);


        return v;
    }

    @Override
    public void onViewCreated(View view,Bundle savedInstanceStatE) {
        super.onViewCreated(view,savedInstanceStatE);



        function1();//here I am calling function1
        populate_listview();

        }


     public void populate_listview()
     {


         URL="http://www.abcd.com/en/RSS@L_772_10@s/1_2_3_5/latest/RSS.xml";
         ArrayList<HashMap<String,String>> newsList = new ArrayList<HashMap<String,String>>();

        XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(URL);
        Document doc = parser.getDomElement(xml);
        NodeList nl = doc.getElementsByTagName(KEY_HEAD);
        NodeList itemLst = doc.getElementsByTagName("item");
        String MarqueeStr="";

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


     }
        list=(GridView)getActivity().findViewById(R.id.grid);
        adapter=new Adapter1(getActivity(),newsList);        
                list.setAdapter(adapter);

      }




}

Fragment2 =>

public class Fragment2 extends Fragment{


    public static String @L_772_10@url="http://www.abcd.com/en/RSS@L_772_10@s/1_2_3_5/latest/RSS.xml";
    static String URL = "";
    static final String KEY_HEAD = "item"; // parent node
    static final String KEY_DATE = "pubDate";
    public static String headflag="";
    int f=0;
    GridView list;
    HeadlinesAdapter adapter;
    private TextView mmessageView;
    private Button mClearButton;

    @Override
    public View onCreateView(LayoutInflater inflater,Bundle savedInstanceStatE) {

        View v = inflater.inflate(R.layout.second_fragment,savedInstanceStatE);



        function2();//here I am calling function2
        populate_listview();

        }


     public void populate_listview()
     {


         URL="http://www.abcd.com/en/RSS@L_772_10@s/1_2_3_5/latest/RSS.xml";
         ArrayList<HashMap<String,String>();
            Element e = (Element) nl.item(i);
                    newsList.add(map);


     }
        list=(GridView)getActivity().findViewById(R.id.grid2);
        adapter=new HeadlinesAdapter(getActivity(),newsList);        
                list.setAdapter(adapter);

      }




}

主要活动=>

public class MainActivity extends FragmentActivity {

    private ViewPager mViewPager;
    private messageLoader mLoader;
    private Button mSenderButton,mReceiverButton;

    @Override
    public void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentView(R.layout.main);
        // We get UI references
        mViewPager = (ViewPager) findViewById(R.id.viewPager);
        mSenderButton = (Button) findViewById(R.id.sender_button);
        mReceiverButton = (Button) findViewById(R.id.receiver_button);
        // set pager adapter
        mViewPager.setAdapter(new MyAdapter(this));
        // set receiver button listener
        mReceiverButton.setOnClickListener(new OnClickListener() {          

            public void onClick(View v) {
                mViewPager.setCurrentItem(1);
            }
        });

        mSenderButton.setOnClickListener(new OnClickListener() {            

            public void onClick(View v) {
                mViewPager.setCurrentItem(0);
            }
        });
    }


    private class MyAdapter extends FragmentPagerAdapter{

        private Context mContext;
        private String[] frags = {Fragment1.class.getName(),Fragment2.class.getName()};

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

        @Override
        public Object instantiateItem(ViewGroup container,int position) {
            Fragment frag = (Fragment) super.instantiateItem(container,position);
            if(frag instanceof messageLoader){
                mLoader = (messageLoader) frag;
            }
            return frag;
        }

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

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

    }




}

这是布局,

first_fragment.xml =>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://scheR_957_11845@as.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:BACkground="#ffff"
    android:orientation="vertical" >



    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >



    </RelativeLayout>

    <GridView
        android:id="@+id/grid"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numcolumns="2" >
    </GridView>

</LinearLayout>

second_fragment.xml =>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://scheR_957_11845@as.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:BACkground="#ffff"
    android:orientation="vertical" >



    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >



    </RelativeLayout>

    <GridView
        android:id="@+id/grid2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numcolumns="2" >
    </GridView>

</LinearLayout>
@H_169_5@main.xml中=>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://scheR_957_11845@as.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:BACkground="#CCCCCC"
        android:gravity="center_vertical"
        android:paddingTop="3dp" >

        <Button
            android:id="@+id/receiver_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Headlines" />

        <Button
            android:id="@+id/sender_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Kerala" />
    </TableRow>

    <android.support.v4.view.ViewPager
        xmlns:android="http://scheR_957_11845@as.android.com/apk/res/android"
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

解决方法

您可以使用以下代码捕获滑动事件:

@H_349_11@mViewPager.setOnPagechangelistener(new OnPagechangelistener() { @Override public void onPageScrolled(int position,float positionOffset,int positionOffsetPixels) { } @Override public void onPageSELEcted(int position) { if(position==0){ function1(); }else if(position==1){ function2(); } } @Override public void onPageScrollStateChanged(int statE) { } });

以任何最适合的重写方法调用您的函数

@H_489_52@

大佬总结

以上是大佬教程为你收集整理的在Android中调用片段内的函数全部内容,希望文章能够帮你解决在Android中调用片段内的函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。