2011-09-16 30 views
1

在我的應用程序中,我想要「點擊這裏」,其中'HERE'是市場中應用程序的鏈接。如何在應用程序中放置市場鏈接?

所以我做:

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

好了,兩個答案都正確的部分;兩者的問題是鏈接不可點擊。但是,我發現了這個問題。

當我們想linkify(直接)的網址,我們只需要做:

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

但是,當我們想「玩」我們需要使用(如在另一個答案說明)的鏈接我們可以使用HTML:

TextView link = (TextView) findViewById(R.id.appbrain); 
      link.setText(Html.fromHtml("" + 
        "- Download <a href=\"https://market.android.com/details?id=com.appspot.swisscodemonkeys.apps\">Appbrain</a>" + 
        " to update all your apps!")); 

即使我們用下面的代碼,鏈接不可點擊。

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(); 
    } 
相關問題