web-dev-qa-db-ja.com

Androidアプリケーションでボタンがクリックされたときにウェブサイトを開く方法は?

ユーザーがクリックするためのいくつかのボタンを備えたアプリを設計しています。ボタンをクリックすると、ユーザーは適切なWebサイトに移動します。どうすればこれを達成できますか?

21
Andy

RCPアプリについて話している場合、必要なのはSWT linkウィジェットです。

ここ は、公式のリンクイベントハンドラスニペットです。

更新

以下は、2つのボタンでスーパーユーザーまたはStackoverflowに接続するためのミニマリストAndroidアプリケーションです。

package ap.Android;

import Android.app.Activity;
import Android.content.Intent;
import Android.net.Uri;
import Android.os.Bundle;
import Android.view.View;

public class LinkButtons extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void goToSo (View view) {
        goToUrl ( "http://stackoverflow.com/");
    }

    public void goToSu (View view) {
        goToUrl ( "http://superuser.com/");
    }

    private void goToUrl (String url) {
        Uri uriUrl = Uri.parse(url);
        Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
        startActivity(launchBrowser);
    }

}

そして、これがレイアウトです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:orientation="vertical" Android:layout_width="fill_parent" Android:layout_height="fill_parent">
    <TextView Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:text="@string/select" />
    <Button Android:layout_height="wrap_content" Android:clickable="true" Android:autoLink="web" Android:cursorVisible="true" Android:layout_width="match_parent" Android:id="@+id/button_so" Android:text="StackOverflow" Android:linksClickable="true" Android:onClick="goToSo"></Button>
    <Button Android:layout_height="wrap_content" Android:layout_width="match_parent" Android:text="SuperUser" Android:autoLink="web" Android:clickable="true" Android:id="@+id/button_su" Android:onClick="goToSu"></Button>
</LinearLayout>

時間が許せば、ボタンにサイトのロゴを追加して、少しセクシーにします;-)

39
Alain Pannetier

Javaファイルに次のコードを書きます...

ImageView Button = (ImageView)findViewById(R.id.yourButtonsId);

Button.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.addCategory(Intent.CATEGORY_BROWSABLE);
        intent.setData(Uri.parse("http://www.yourURL.com"));
        startActivity(intent);
    }
});
22
Saty

ここに実行可能な答えがあります。

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
  package="com.tutorial.todolist"
  Android:versionCode="1"
  Android:versionName="1.0">
  <uses-sdk Android:minSdkVersion="3"></uses-sdk>
  <application Android:icon="@drawable/icon" Android:label="@string/app_name">
    <activity Android:name=".todolist"
              Android:label="@string/app_name">
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />
            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
  </application>
</manifest>

todolist.Java

package com.tutorial.todolist;
import Android.app.Activity; 
import Android.content.Intent;
import Android.net.Uri;
import Android.os.Bundle; 
import Android.view.View;
import Android.view.View.OnClickListener;
import Android.widget.Button;

public class todolist extends Activity {    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btn = (Button) findViewById(R.id.btn_clickme);
        btn.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent myWebLink = new Intent(Android.content.Intent.ACTION_VIEW);
                myWebLink.setData(Uri.parse("http://www.anddev.org"));
                    startActivity(myWebLink);
             }
        });
    }
}

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:Android="schemas.Android.com/apk/res/Android"
  Android:orientation="vertical" 
  Android:layout_width="fill_parent" 
  Android:layout_height="fill_parent" > 

    <Button Android:id="@+id/btn_clickme" 
      Android:text="Click me..." 
      Android:layout_width="fill_parent" 
      Android:layout_height="wrap_content" /> 
</LinearLayout>
11
Andy

インポートimport Android.net.Uri;

Intent openURL = new Intent(Android.content.Intent.ACTION_VIEW);
openURL.setData(Uri.parse("http://www.example.com"));
startActivity(openURL);

またはそれを使用して行うことができます、

TextView textView = (TextView)findViewById(R.id.yourID);

textView.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.addCategory(Intent.CATEGORY_BROWSABLE);
        intent.setData(Uri.parse("http://www.typeyourURL.com"));
        startActivity(intent);
    } });
6
Sampad
ImageView Button = (ImageView)findViewById(R.id.button);

Button.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        Uri uri = Uri.parse("http://google.com/");

        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(intent);
    }
});
4
Anil gangwar

これをボタンのクリックリスナーに追加します。

  Intent intent = new Intent(Android.content.Intent.ACTION_VIEW);
    try {
        intent.setData(Uri.parse(url));
        startActivity(intent);
    } catch (ActivityNotFoundException exception) {
        Toast.makeText(getContext(), "Error text", Toast.LENGTH_SHORT).show();
    }

ハードコードされた文字列ではなく変数としてWebサイトのURLがある場合は、ActivityNotFoundExceptionを処理してエラーを表示することを忘れないでください。または、無効なURLを受け取り、アプリがクラッシュする可能性があります。 (url変数の代わりにランダムな文字列を渡し、自分で確認します)

2
Johnny Five

あなたのボタンクリックアクティビティでこれを使用できます

Intent webOpen = new Intent(Android.content.Intent.ACTION_VIEW);
            WebOpen.setData(Uri.parse("http://www.google.com"));
                startActivity(myWebLink);

これをコードにインポートします

import Android.net.Uri;
2
meisamphp

適切なWebサイトにhrefするアンカーでボタンをラップできます。

<a href="http://www.stackoverflow.com">
  <input type="button" value="Button" />
</a>
<a href="http://www.stackoverflow.com">
  <input type="button" value="Button" />
</a>
<a href="http://www.stackoverflow.com">
  <input type="button" value="Button" />
</a>

ユーザーがボタン(入力)をクリックすると、アンカーのhrefプロパティで指定された宛先にリダイレクトされます。

編集:おっと、質問のタイトルで「Eclipse」を読みませんでした。私の間違い。

0
Jared
public class MainActivity extends Activity {

private WebView webView1;
Button google; 


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    google = (Button) findViewById(R.id.google);
    google.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            webView1 = (WebView) findViewById(R.id.webView);
            webView1.getSettings().setJavaScriptEnabled(true);
            webView1.loadUrl("http://www.google.co.in/");

      }
});        
    }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}
0
Kartyk Sp