我有一个带有锚点的html字符串的textview.当我单击textview时我想调用例如一个名为A的方法,当我单击textview中的一个链接时,我想调用一个名为B的方法.我得到了这个工作但是我遇到了一个问题:当我点击一个链接时,方法调用B,但也调用方法A. 当我点击链接时,如何确保只调用方法B而不是B和A?
我的代码:
for (int i = 0; i < ingevoegd.length(); i++) {
JSONObject soortingevoegd = ingevoegd.getJSONObject(i);
String type = soortingevoegd.getString("type");
if (type.equals("Vis")) {
String link = "<a href = 'com.aquariumzoeken.pro://Soortweergave?selected="
+ naam + "&type=Vis" + "'>" + naam + "</a>";
text = text.replaceAll(naam, link);
}
}
TextView texttv = (TextView) v.findViewById(R.id.textviewer);
texttv.setText(Html.fromHtml(text));
texttv.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
和textview onclicklistener:
texttv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
switchToEditMode sw = new switchToEditMode();
} catch (JSONException e) {
// TODO Auto-generated …Run Code Online (Sandbox Code Playgroud) 好.这些是我的问题.
从"(标签打开)t(关闭)(标签打开)h(关闭)(标签打开)i(关闭)(标签打开)s(关闭)(标签打开)i(a关闭)(标签打开)s(关闭)(标签打开)w(关闭)(标签打开)r(关闭)(标签打开)o(关闭)(标签打开)n(a关闭)(标签打开)g(关闭)";
至 :
"(标签打开)此(关闭)(标签打开)是(关闭)(标签打开)右(关闭)";
然后我让它们可点击,我需要抓住点击事件并在点击的单词上获得屏幕上的位置,因为我想使用点击的事件使工具提示显示在点击的单词下方.谢谢您的帮助.
公共类MainActivity扩展Activity {
public String text = "This is just a sentence to test you. 23 this is another number23!g?";
public TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = explode(text);
tv = (TextView) findViewById(R.id.tv1);
tv.setLinksClickable(true);
tv.setMovementMethod(LinkMovementMethod.getInstance());
Spanned article = Html.fromHtml(text, null, null);
setHTML(article);
}
public void setHTML(Spanned html) {
SpannableString message = new SpannableString(html.toString());
Object[] spans = html.getSpans(0, html.length(), Object.class);
for (Object span : spans) …Run Code Online (Sandbox Code Playgroud)