簡體   English   中英

Android:如何在onClick中從LazyAdapter啟動活動

[英]Android: How to start an activity from LazyAdapter in onClick

我有一個從BaseAsapter擴展的LazyAdapter,在其中我實現了clickListener。 如果用戶單擊Facebook,則應打開Facebook;如果用戶單擊Twitter,則應進行下一個活動。

我在LazyAdapter中的代碼是

button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                if(item.equalsIgnoreCase(Constants.Facebook))
                {

                    SocialActivity obj1=new SocialActivity();
                    obj1.startFB(context);


                }
                else if(item.equalsIgnoreCase(Constants.Twitter))
                {

                    SocialActivity obj=new SocialActivity();
                    obj.startTwitter(context);  
                }

            }
        });

這是SocialActivity的代碼

Twitter方法

void startTwitter(Context con)
    {
        Intent intent = new Intent(con,TwitterInterface.class);
        startActivity(intent);
    }

Facebook方法

void startFb(Context con)
        {
            Intent intent = new Intent(con,FaceBook.class);
            startActivity(intent);
        }

取而代之的是,我也在LazyAdapter嘗試了這段代碼,但是每次它給我Null Pointer Exception 因此,對於解決此問題的任何幫助,我們將深表感謝,並在此先感謝您。

if(item.equalsIgnoreCase(Constants.Facebook))
                {
                    SocialActivity obj1=new SocialActivity();
                    Intent in = new Intent(context,Facebook.class);

                    obj1.startActivity(in);


                }
                else if(item.equalsIgnoreCase(Constants.Twitter))
                {

                    SocialActivity obj=new SocialActivity();
                    Intent intent = new Intent(context,TwitterInterface.class);

                    obj.startActivity(intent);
                }

我已經解決了

v.getContext().startActivity(intent)

Intent intent = new Intent(context,TwitterInterface.class);

v.getContext().startActivity(intent);

試試看,它更簡單,也是編碼的好習慣

button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            if(item.equalsIgnoreCase(Constants.Facebook))
            {
                SocialActivity obj1=new SocialActivity();
                obj1.startFB(mContext);
            }
            else if(item.equalsIgnoreCase(Constants.Twitter))
            {
                SocialActivity obj=new SocialActivity();
                obj.startTwitter(mContext);  
            }

        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM