Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>For twitter app, I had also the same requirement to click on handles of tweets and also click on the text of tweet to get Tweet detail.</p> <p>For that I have used this <a href="http://www.orangeapple.org/post/14809024490/android-custom-hyperlinked-textview" rel="noreferrer"><strong>LinkEnabledTextView</strong></a> and that become easy for me to do the task.</p> <p>I just added the class in my project and then in List Item instead simple TextView I used object/instance of the LinkEnabledTextView.</p> <p>There is a complete demo in above link, Please check that.</p> <p>EDIT: Adapter Code <strong>Specially check onTextLinkClick() and then holder.twtdata.setOnClickListener()</strong></p> <pre><code> private static class EfficientAdapter extends BaseAdapter implements TextLinkClickListener { private LayoutInflater mInflater; static int pos =0; public EfficientAdapter(Context context) { mInflater = LayoutInflater.from(context); } public int getCount() { return timelines.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.listtimerow, null); holder = new ViewHolder(); holder.twtdata = (LinkEnabledTextView) convertView .findViewById(R.id.twtdata); holder.twtnm = (TextView) convertView .findViewById(R.id.twthandle); holder.twtimg = (ImageView) convertView .findViewById(R.id.avatar); holder.twtdt = (TextView) convertView .findViewById(R.id.created); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.twtdata.setOnTextLinkClickListener(this); holder.twtdata.gatherLinksForText(timelines[position]); holder.twtdata.setTextColor(Color.BLACK); holder.twtdata.setLinkTextColor(Color.BLUE); MovementMethod m = holder.twtdata.getMovementMethod(); if ((m == null) || !(m instanceof LinkMovementMethod)) { if (holder.twtdata.getLinksClickable()) { holder.twtdata.setMovementMethod(LinkMovementMethod.getInstance()); } } if (bmpimg1[position] != null) holder.twtimg.setImageBitmap(bmpimg1[position]); holder.twtnm.setText(twitterhandles[position]); Date credate = new Date(created[position]); String dt = credate.getDate() + " " + getMonthName(credate.getMonth()); holder.twtdt.setText(dt); holder.twtdata.setOnClickListener(new OnClickListener() { public void onClick(View v) { pos = position; if(linkselected==true) return; childSelected = true; Log.i("mention data", timelines[position]); Intent textintent = new Intent(ctx, TimelineRe.class); textintent.putExtra("userid", userid[position]); textintent.putExtra("nm", twitterhandles[position]); textintent.putExtra("msg", timelines[position]); textintent.putExtra("pos", position); textintent.putExtra("frm", "t"); textintent.putExtra("img", bmpimg1[position]); if (urlentities[position] != null &amp;&amp; dpurlentities[position] != null) { textintent.putExtra("urlentity", urlentities[position]); textintent.putExtra("dpurlentity", dpurlentities[position]); } textintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ctx.startActivity(textintent); } }); holder.twtnm.setOnClickListener(new OnClickListener() { public void onClick(View v) { childSelected = true; Intent iconintent = new Intent(ctx, TweetRe.class); iconintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); iconintent.putExtra("userid", userid[position]); iconintent.putExtra("pos", position); iconintent.putExtra("frm", "t"); iconintent.putExtra("img", bmpimg1[position]); ctx.startActivity(iconintent); } }); holder.twtimg.setOnClickListener(new OnClickListener() { public void onClick(View v) { childSelected = true; Intent iconintent = new Intent(ctx, TweetRe.class); iconintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); iconintent.putExtra("userid", userid[position]); iconintent.putExtra("pos", position); iconintent.putExtra("frm", "t"); iconintent.putExtra("img", bmpimg1[position]); ctx.startActivity(iconintent); } }); return convertView; } @Override public int getItemViewType(int position) { return position; } @Override public int getViewTypeCount() { return timelines.length; } static class ViewHolder { TextView twtdt; LinkEnabledTextView twtdata; ImageView twtimg; TextView twtnm; } public void onTextLinkClick(View textView, String clickedString) { if (isWiFiConnected == false) { Toast.makeText(ctx, "No Internet Connection \nPlease Check and Retry", Toast.LENGTH_SHORT).show(); return; } android.util.Log.v("Hyperlink clicked is :: " + clickedString, "Hyperlink clicked is :: " + clickedString); if(clickedString.charAt(0)=='#') { linkselected=true; childSelected=true; Intent reintent = new Intent(ctx, Search.class); reintent.putExtra("frm", "l"); reintent.putExtra("keyword",clickedString.substring(1, clickedString.length()) ); reintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ctx.startActivity(reintent); } else if(clickedString.charAt(0)=='@') { linkselected=true; childSelected=true; Intent iconintent = new Intent(ctx, TweetRe.class); iconintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); iconintent.putExtra("snm", clickedString.substring(1,clickedString.length())); iconintent.putExtra("frm", "l"); // iconintent.putExtra("userid", userid[pos]); // iconintent.putExtra("pos", pos); // iconintent.putExtra("img", bmpimg2[pos]); ctx.startActivity(iconintent); } else if(clickedString.charAt(0)=='h') { linkselected=true; childSelected=true; Intent iconintent = new Intent(ctx, ShowLink.class); iconintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); iconintent.putExtra("url","http://www."+dpurlentities[pos]); ctx.startActivity(iconintent); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload