আমার কাছে একটি টেক্সটভিউ রয়েছে যা 2+ লিঙ্কযুক্ত বেসিক এইচটিএমএল উপস্থাপন করছে। আমার নিজের অভ্যন্তরীণ ওয়েবভিউতে (ডিফল্ট ব্রাউজারে নয়) লিঙ্কগুলিতে ক্লিকগুলি ক্যাপচার করতে এবং লিঙ্কগুলি খুলতে হবে)
লিঙ্ক রেন্ডারিং হ্যান্ডেল করার সর্বাধিক প্রচলিত পদ্ধতি এটির মতো বলে মনে হয়:
String str_links = "<a href='http://google.com'>Google</a><br /><a href='http://facebook.com'>Facebook</a>";
text_view.setLinksClickable(true);
text_view.setMovementMethod(LinkMovementMethod.getInstance());
text_view.setText( Html.fromHtml( str_links ) );
যাইহোক, এর ফলে ডিফল্ট অভ্যন্তরীণ ওয়েব ব্রাউজারে লিঙ্কগুলি খোলার কারণ হয় ("সম্পূর্ণ অ্যাকশন ব্যবহার করে ..." ডায়ালগ দেখানো হয়)।
আমি অনক্লিকলিস্টনার বাস্তবায়নের চেষ্টা করেছি, যা লিঙ্কটি ক্লিক করা হলে সঠিকভাবে ট্রিগার হয়ে যায়, তবে কী লিঙ্কটি ক্লিক করা হয়েছিল তা নির্ধারণ করার জন্য আমি জানি না ...
text_view.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// what now...?
}
});
বিকল্পভাবে, আমি একটি কাস্টম লিংক মোভমেন্টমেডোড ক্লাস তৈরি করার চেষ্টা করেছি এবং অন টাচএভেন্ট প্রয়োগ করেছি ...
public boolean onTouchEvent(TextView widget, Spannable text, MotionEvent event) {
String url = text.toString();
// this doesn't work because the text is not necessarily a URL, or even a single link...
// eg, I don't know how to extract the clicked link from the greater paragraph of text
return false;
}
ধারনা?
উদাহরণ সমাধান
আমি একটি সমাধান নিয়ে এসেছি যা এইচটিএমএল স্ট্রিংয়ের লিঙ্কগুলিকে পার্স করে এবং সেগুলিকে ক্লিকযোগ্য করে তোলে এবং তারপরে আপনাকে ইউআরএলে প্রতিক্রিয়া জানাতে দেয়।
span.getURL()
")) আপনি এটি উত্তর হিসাবে পোস্টও করতে পারেন, কারণ এটি বর্তমানে গৃহীত উত্তরের চেয়ে ভাল!