2016-03-28 6 views
0

Ich baue die Quelle von Android, damit ich einige Klassen anpassen kann. Davon abgesehen habe ich keinen Zugang zu einem Activity, um startActivity mit einem Intent zu rufen.ImageSpan mit klickbaren Link

Heres, was ich habe:

Spannable sp = (Spannable) text; 
ImageSpan imageSpan = new ImageSpan(mContext, imageResourceId); 
sp.setSpan(imageSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

Gibt es eine Möglichkeit, ein href oder Link auf Klick des ImageSpan zu öffnen?

+0

rufen Sie ein anderes 'sp.setSpan' dieses Mal mit einem benutzerdefinierten 'ClickableSpan' – pskink

+0

Ich habe das untersucht. Aber was dann? Es gibt keine Möglichkeit, 'startActivity()' so weit wie ik –

+0

zu nennen was meinst du: "Aber was dann?" wird 'onClick (View widget)' aufgerufen? – pskink

Antwort

0

können Sie ClickableSpan für die gleiche Region als Ihre ImageSpan erstellen und Methode onClick für anklickbare span hinzufügen.

+0

Ich ändere die' TextView' Klasse und füge diesen Code hinzu. Ich habe keinen Zugriff auf Variablen, um eine Aktivität zu starten, so weit wie ik –

+0

können Sie bitte Ihren Code hinzufügen. – KDeogharkar

+0

gibt es wirklich keinen anderen Code. Ich füge das nur der 'setText' Methode von' TextView' hinzu –

0

Wenn Sie eine ClickableSpan wie vorgeschlagen verwenden, erhalten Sie einen Anruf an onClick. Dieser Rückruf hat einen View Parameter, den Sie verwenden können.

Eine View hat eine Methode getContext(), die Sie verwenden können, um einen Kontext zu erhalten und startActivity aufrufen.