Android:如何在onClick中从LazyAdapter启动活动

时间:2014-03-04 07:03:53

标签: android android-activity

我有一个从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);
                }

2 个答案:

答案 0 :(得分:1)

我已经使用

解决了
v.getContext().startActivity(intent)

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

v.getContext().startActivity(intent);

答案 1 :(得分:0)

试试这个更简单,更好的编码方法

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);  
            }

        }
    });