/ / Android: Jak rozpocząć działanie z LazyAdapter w onClick - android, android-activity

Android: Jak rozpocząć aktywność z LazyAdapter w onClick - Android, Android-Activity

Mam LazyAdapter, który rozciąga się odBaseAsapter, w którym zaimplementowałem metodę clickListener. Jeśli użytkownik kliknie na Facebooku, powinien otworzyć facebooka, a jeśli użytkownik kliknie na Twitterze, powinien przejść do następnej czynności.

Mój kod w LazyAdapter to

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

}
});

i to jest kod w SocialActivity

Metoda Twittera

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

Metoda Facebooka

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

Zamiast tego wypróbowałem również ten kod w LazyAdapter, ale za każdym razem mi to daje Null Pointer Exception. Dlatego każda pomoc w rozwiązaniu tego problemu będzie bardzo mile widziana iz góry dziękujemy.

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

Odpowiedzi:

1 dla odpowiedzi № 1

Rozwiązałem za pomocą

v.getContext().startActivity(intent)

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

v.getContext().startActivity(intent);

0 dla odpowiedzi nr 2

Spróbuj tego, to jest prostsze i stanowi dobrą praktykę kodowania

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

}
});