2011-09-16 4 views
1

私のアプリでは、「ここをクリック」のようなものを持ちたいと思っています。ここでは、ここには市場のアプリへのリンクがあります。マーケットリンクをアプリケーション内に配置するにはどうすればよいですか?

だから私はやった:

TextView link = (TextView) findViewById(R.id.appbrain); 
      link.setText("market://details?id=com.appspot.swisscodemonkeys.apps&hl=pt_PT"); 
      Linkify.addLinks(link, Linkify.ALL); 
をしかし、これは動作しません。どうすればいいですか?

答えて

1

[OK]を参照して、両方の答えは部分的に正しいです。両方の問題はリンクがクリック可能でないことです。しかし、私は問題を発見した。

TextView link = (TextView) findViewById(R.id.url); 
     link.setText("http://google.pt"); 
     Linkify.addLinks(link, Linkify.ALL); 

をしかし、我々は(別の答えに記載されているように)我々が使用する必要がリンクして「再生」したいときに我々はできる:

我々は我々だけしなければならない(直接)URLをlinkifyしたい

HTMLを使用:

次のコードを使用しても、リンクはクリックできません。

Linkify.addLinks(link, Linkify.ALL); 

ソリューションは、ちょうど次のコードを使用している:

link.setMovementMethod(LinkMovementMethod.getInstance()); 
2

ウェブ版のリンクhttp://market.android.com/details?id=<package name>を使用してください。ユーザーは、ブラウザまたはマーケットアプリでリンクを開くかどうか、または既にデフォルトを選択してすぐに開くかどうかを尋ねられます。

また、いくつかのHTMLを使用して、このようなのTextViewのテキストを設定できます。

textView.setText(Html.fromHtml("<a href=\"market://details?id=com.appspot.swisscodemonkeys.apps&hl=pt_PT\">CLICK HERE</a>"));

1

このURLは市場のアプリケーション用に定義されたカスタムであるとして、あなただけの、パターンを定義する必要があります。

Pattern appWordMatcher = Pattern.compile("\\b[A-Z]+[a-z0-9]+[A-Z][A-Za-z0-9]+\\b"); 
String appMarketURL = "market://details?id=com.appspot.swisscodemonkeys.apps&hl=pt_PT"; 
Linkify.addLinks(txtView, appWordMatcher, appMarketURL); 

詳細についてはWikiNotes: Linkify your Text!

+0

おそらく他の回答と同じ理由で、うまくいきません。リンクは表示されますが、クリックできません。 – Tiago

0

別のオプションは、ちょうどボタンやクリック可能なテキストフィールドを作成し、そこからのアクティビティを起動することです。

try 
    { 
     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.mypackage.myapp"))); 
    } catch (ActivityNotFoundException e) { 
     Toast.makeText(this, "Cannot load Play Store", Toast.LENGTH_SHORT).show(); 
    } 
関連する問題