0
public class MessagesAdapter extends BaseAdapter{

    public Context mContext;
    public LayoutInflater inflater;
    ArrayList<MessagesModelClass> mMessagesList = new ArrayList<MessagesModelClass>();
    Typeface fontMuseo;
    int pos;

    public MessagesAdapter(Context contxt,
                           ArrayList<MessagesModelClass> msgList) {
        this.mContext = contxt;
        this.mMessagesList = msgList;
        this.inflater = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN ) {
            this.fontMuseo = Typeface.createFromAsset(mContext.getAssets(), "museo_sans_500.ttf");
        } else {
            this.fontMuseo = Typeface.createFromAsset(mContext.getAssets(), "Roboto-Regular.ttf");
        }
    }

    @Override
    public int getCount() {
        return mMessagesList.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    public static class ViewHolder {
        TextView heading, description,duration;
        RelativeLayout replyRL;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        pos = position;
        ViewHolder holder;
        if (convertView == null) {
            holder = new ViewHolder();
            convertView = inflater.inflate(R.layout.list_item_messages, null);
            //holder.heading = (TextView) convertView.findViewById(R.id.heading_messages);
            holder.description = (TextView) convertView.findViewById(R.id.description_messages);
            holder.duration = (TextView) convertView.findViewById(R.id.time_duration);


            holder.description.setTypeface(fontMuseo);
            holder.duration.setTypeface(fontMuseo);



            convertView.setTag(holder);

        } else {
            holder = (ViewHolder) convertView.getTag();
        }


        holder.description.setText(Html.fromHtml(mMessagesList.get(pos).getDescription()));
        holder.duration.setText(Html.fromHtml(mMessagesList.get(pos).getDuration()));

        holder.description.setAutoLinkMask(Linkify.WEB_URLS);

        return convertView;
    }

}

 <TextView
            android:id="@+id/description_messages"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Abcdefghijklmnopqrstuvwxyz"
            android:textColor="#000"
            android:autoLink="web"
            android:linksClickable="true"
            android:textColorLink="@color/blue"
            android:textSize="16sp"
            android:typeface="serif" />

I have used PullToRefreshListView in a Fragment in my android application.List items contain a Textview, having web links. I am not applying OnItemClickListener to the PullToRefreshListview and I used android:autoLink="web" and android:linksClickable="true" on List item TextView.When I click on that web link its not redirecting to the web.Its showing below Exception.

          android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.Is this really what you want?

             at android.app.ContextImpl.startActivity(ContextImpl.java:1341)
             at android.app.ContextImpl.startActivity(ContextImpl.java:1328)
             at android.content.ContextWrapper.startActivity(ContextWrapper.java:322)
             at android.text.style.URLSpan.onClick(URLSpan.java:69)
             at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:217)
             at android.widget.TextView.onTouchEvent(TextView.java:8273)
             at android.view.View.dispatchTouchEvent(View.java:8511)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at com.handmark.pulltorefresh.library.PullToRefreshListView$InternalListView.dispatchTouchEvent(PullToRefreshListView.java:307)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
             at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2239)
             at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2395)
             at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1739)
             at android.app.Activity.dispatchTouchEvent(Activity.java:2781)
             at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
             at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
             at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2356)
             at android.view.View.dispatchPointerEvent(View.java:8712)
             at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4536)
             at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4394)
             at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3915)
             at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3968)
             at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3934

1 Answers1

0

Old unanswered question but just in case someone needs this:

This error is caused by using the application context.startActivity() instead of an activity context. Activities launch other activities but if you want to launch one from the application context you need to add the new task flag to the intent.

The OP is probably passing the app context to the constructor in the original post.

bsautner
  • 4,479
  • 1
  • 36
  • 50