2016-06-19 6 views
0

Я заменил OnClikListener на мой класс CustomTweetTimelineListAdapter следующим и примером и отлично работает, но когда твит содержит URL-адрес, клик по ссылке не обнаружен и вызывает вызов действия OnClicklistener адаптера, возможно make, если ссылка нажата, откройте URL-адрес вместо того, чтобы активировать действие OnClickListener адаптера?Нажмите на ссылку на пользовательский адаптер

package client.tclient.com.client;

import android.content.Context; 
import android.content.Intent; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Adapter; 

import com.twitter.sdk.android.core.models.Tweet; 
import com.twitter.sdk.android.tweetui.Timeline; 
import com.twitter.sdk.android.tweetui.TweetTimelineListAdapter; 

/** 
* Created by alvaro on 13/06/16. 
*/ 
public class CustomTweetTimelineListAdapter extends TweetTimelineListAdapter implements Adapter{ 

    private Context context; 
    /** 
    * Constructs a TweetTimelineListAdapter for the given Tweet Timeline. 
    * 
    * @param context the context for row views. 
    * @param timeline a Timeline<Tweet> providing access to Tweet data items. 
    * @throws IllegalArgumentException if timeline is null 
    */ 
    public CustomTweetTimelineListAdapter(Context context, Timeline<Tweet> timeline) { 
     super(context, timeline); 
     this.context = context; 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     View view = super.getView(position, convertView, parent); 

     //disable subviews 
     if(view instanceof ViewGroup){ 
      disableViewAndSubViews((ViewGroup) view); 
     } 

     //enable root view and attach custom listener 
     view.setEnabled(true); 
     view.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Long tweetId = getItemId(position); 
       Intent intent = new Intent(context,TweetActivity.class); 
       intent.putExtra("TWEET_ID", tweetId); 
       context.startActivity(intent); 
      } 
     }); 
     return view; 
    } 
    private void disableViewAndSubViews(ViewGroup layout) { 
     layout.setEnabled(false); 
     for (int i = 0; i < layout.getChildCount(); i++) { 
      View child = layout.getChildAt(i); 
      if (child instanceof ViewGroup) { 
       disableViewAndSubViews((ViewGroup) child); 
      } else { 
       child.setEnabled(false); 
       child.setClickable(false); 
       child.setLongClickable(false); 
      } 
     } 
    } 
} 
+0

Вы проверили [это] (http://stackoverflow.com/questions/11007008/whats-the-best-way-to-check-if-a-string-contains-a-url-in-java -android) ответ? Может быть, «прослушать/проверить» для URL-адреса в возвращаемой строке? –

+0

Или используйте «android: autoLink» в TextView –

ответ

0

Вашего мнение должны содержать ссылку на ссылку позволяет предположить, что это TextView и определить слушатель для этого подвида.

Смежные вопросы