Textview içinde yer alan linklere toast ile mesaj ekleme

Abdullah Karipcin
Abdullah Karipcin
Published in
1 min readDec 4, 2017

Textview’da özlü sözler gösterdiğinizi ve o özlü sözün sahibine tıklayınca toast ile o kişi hakkında bilgi çıkarmak istediğinizi varsayalım.

MutIuIuğu tatmanın tek çaresi, onu payIaşmaktır. Byron

Burada “Byron” yazan yere tıklayınca toast çıkarma işlemini en basit yolu ile anlatacağım.

TextView yazi  = (TextView) findViewById(R.id.yazi);
yazi.setLinksClickable(true);
yazi.setMovementMethod(LinkMovementMethod.getInstance());
yazi.setText(Html.fromHtml("MutIuIuğu tatmanın tek çaresi, onu payIaşmaktır. <a href='myapp://?id=1212'>Byron</a>"));

Alinti adında herhangi bir layoutu olmayan bir activity oluşturalım.

public class Alinti extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);


try {
Uri data = getIntent().getData();

if (data != null && data.isHierarchical()) {
String id = data.getQueryParameter("id");
Toast.makeText(getBaseContext(),"ID: "+id,Toast.LENGTH_SHORT).show();
//Burada id parametresini alıp veritabanından ilgili bilgileri çekip toast ile basma işlemini gerçekleştireceksiniz.
}

} catch (Exception e) {
e.printStackTrace();
}

finish();
}
}

Manifest dosyasında Alinti activity kısmı aşağıdaki gibi olmalı, scheme kısmını dilediğiniz gibi değiştirebilirsiniz.

<activity android:name=".Alinti">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />

<data android:scheme="myapp" />
</intent-filter>
</activity>

Herşey hazır.

Burada yaptığımız şey şu; TextView’da <a href=’myapp://?id=1212'>Byron</a> gibi link yer aldığı zaman myapp şemasını manifest dosyasından Alinti’ya tanımladığımız için myapp şeması ile başlayan linkler Alinti activity sayfasına gönderiliyor ve siz gelen parametreleri alıp toast yada dialog gösterip finish() ile acitivityi sonlandırıyorsunuz.

İyi kodlamalar.

--

--