2

Linkify(テキスト、パターン、スキーム) を使用して、ダイアログ ボックスに表示されるテキストの正規表現を識別しています。プログラムの他の部分にユーザーを誘導するためのリンクが必要です。

背景のビット:

私のアプリは辞書スタイルのアプリです。用語の ListView は、定義のリストにハッシュされます。ユーザーが用語をタップすると、その定義が 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
    }

Linkify() リンクで別の AlertDialog を呼び出すにはどうすればよいですか?

4

1 に答える 1

0

ClickableSpanを使用する必要があると思います。OnClick メソッドでは、実現したい機能を設定できます。

于 2012-09-02T00:12:31.063 に答える