i have TextView like that:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:autoLink="web"
android:linksClickable="true"
android:textColor="#767675"
android:layout_toEndOf="@+id/imgAvatar"
android:layout_toRightOf="@+id/imgAvatar"
/>
the problem is when i click on the link (if present) i hae this error:
Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag
i set this TextView with:
mMessageView = (TextView) view.findViewById(R.id.content);
mMessageView.setText(mMessage);
there is a way to startIntent when i click on link inside the TextVIew ?
UPDATE:
if i try not work..same error:
mMessageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("www.google.it"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
});
UPDATE2:
public class TweetCard extends Card {
private String mMessage;
private String mTime;
private String mImageUrl;
private String mUser;
private Context mContext;
private NetworkImageView mImageVIew;
private TextView mMessageView;
private TextView mTimeView;
private TextView mUserView;
public TweetCard(Context context,String mMessage,String mTime,String mUser,
String mImageUrl) {
super(context, R.layout.tweet_card_layout);
this.mMessage = mMessage;
this.mTime = mTime;
this.mUser = mUser;
this.mImageUrl = mImageUrl;
this.mContext = context;
init();
}
public TweetCard(Context context, int innerLayout) {
super(context, innerLayout);
//init();
}
private void init() {
setSwipeable(false);
}
@Override
public void setupInnerViewElements(ViewGroup parent, View view) {
if (view != null) {
mMessageView = (TextView) view.findViewById(R.id.content);
mMessageView.setText(mMessage);
// mTimeView = (TextView) view.findViewById(R.id.text_time);
// mTimeView.setText(mTime);
// mUserView = (TextView) view.findViewById(R.id.text_user);
// mUserView.setText(mUser);
mImageVIew =(NetworkImageView) view.findViewById(R.id.imgAvatar);
mImageVIew.setDefaultImageResId(R.drawable.ic_twitter);
mImageVIew.setImageUrl(mImageUrl, K9.getInstance().getImageLoader());
TextView textView = (TextView) view.findViewById(R.id.text_suggested_card1);
textView.setText(mUser + " " + mTime);
}
}
class SuggestedCardHeader extends CardHeader {
private String mTitle;
public SuggestedCardHeader(Context context,String titolo) {
this(context, R.layout.carddemo_suggested_header_inner);
this.mTitle = titolo;
}
public SuggestedCardHeader(Context context, int innerLayout) {
super(context, innerLayout);
}
@Override
public void setupInnerViewElements(ViewGroup parent, View view) {
if (view != null) {
TextView textView = (TextView) view.findViewById(R.id.text_suggested_card1);
if (textView != null) {
textView.setText(mTitle);
}
}
}
}
class SuggestedCardThumb extends CardThumbnail {
public SuggestedCardThumb(Context context) {
super(context);
}
@Override
public void setupInnerViewElements(ViewGroup parent, View viewImage) {
if (viewImage != null) {
if (parent!=null && parent.getResources()!=null){
DisplayMetrics metrics=parent.getResources().getDisplayMetrics();
int base = 100;
if (metrics!=null){
viewImage.getLayoutParams().width = (int)(base*metrics.density);
viewImage.getLayoutParams().height = (int)(base*metrics.density);
}else{
viewImage.getLayoutParams().width = 200;
viewImage.getLayoutParams().height = 200;
}
}
}
}
}
and into the Activity i have:
TweetCard mCard = new TweetCard(this,mTweet.getMessage(),mTweet.getTime(),mTweet.getUser(),mTweet.getImage());
cards.add(mCard);
}
CardArrayAdapter mCardArrayAdapter = new CardArrayAdapter(getApplicationContext(), cards);
if (listView != null) {
listView.setAdapter(mCardArrayAdapter);
}