繁体   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