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