Android Linkify-用于非web(内部)事件控制的链接方案

Android Linkify-用于非web(内部)事件控制的链接方案,android,url-scheme,linkify,Android,Url Scheme,Linkify,我使用Linkify(文本、模式、方案)在对话框中显示的文本中识别正则表达式。我想链接,引导用户到我的程序的其他部分 一点背景: 我的应用程序是字典式的应用程序。术语列表视图散列为定义列表。当用户点击一个术语时,定义会在AlertDialog中弹出。其中一些定义本身实际上包含其他术语。例如: term: "dog" definition: "A mid-sized furry domesticated animal. Not to be confused with [cat]s." 在上述情况

我使用Linkify(文本、模式、方案)在对话框中显示的文本中识别正则表达式。我想链接,引导用户到我的程序的其他部分

一点背景:

我的应用程序是字典式的应用程序。术语列表视图散列为定义列表。当用户点击一个术语时,定义会在AlertDialog中弹出。其中一些定义本身实际上包含其他术语。例如:

term: "dog"
definition: "A mid-sized furry domesticated animal. Not to be confused with [cat]s."
在上述情况下,用户可以单击单词“cat”,这将导致对话框关闭,并在其位置显示“cat”的定义

问题是,Linkify()的唯一文档谈到了打开web URL。我需要的链接,以表明该程序需要转到另一个定义

目前,我将这样的定义称为:

  ListView lv = getListView();

  lv.setOnItemClickListener(new OnItemClickListener() { // when an item is clicked on...
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {

        // Linkify parameters
        Pattern pattern = Pattern.compile("\\[[^]]*]"); // defines the fact that links are bound by [square brackets]
        String scheme = ""; // *** THIS IS WHERE I NEED TO ADD A PROPER SCHEME ***

        AlertDialog alertDialog = new AlertDialog.Builder(ListProjectActivity.this).create(); // create a dialog box in memory
        alertDialog.setTitle(((TextView) view).getText()); // set title of dialog box to term name
        SpannableString definition = new SpannableString(dictionaryMap.get(((TextView) view).getText())); // grab the definition by checking against the dictionary map hash
        Linkify.addLinks(definition, pattern, scheme); // add links to definition
        alertDialog.setMessage(definition); // set dialog box message to term definition
        alertDialog.show(); // actually display the dialog box
    }
ListView lv=getListView();
lv.setOnItemClickListener(新建OnItemClickListener(){//当单击项时。。。
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//链接化参数
Pattern=Pattern.compile(“\\[^]]*]”;//定义链接由[方括号]绑定的事实
String scheme=“”;//***这是我需要添加正确方案的地方***
AlertDialog AlertDialog=新建AlertDialog.Builder(ListProjectActivity.this).create();//在内存中创建对话框
alertDialog.setTitle(((TextView)view.getText());//将对话框标题设置为术语名称
SpannableString definition=new SpannableString(dictionaryMap.get(((TextView)view.getText());//通过检查字典映射哈希来获取定义
addLinks(定义、模式、方案);//将链接添加到定义
alertDialog.setMessage(定义);//将对话框消息设置为术语定义
alertDialog.show();//实际显示对话框
}

如何使Linkify()链接调用另一个AlertDialog?

我认为您需要使用。在OnClick方法中,您可以设置您想要实现的功能。

我认为您需要使用。在OnClick方法中,您可以设置您想要实现的功能。

ClickableSpan
不支持“长时间单击”
ClickableSpan
不支持“长时间单击”