在Android应用程序中单击按钮时如何打开网站?

Posted

技术标签:

【中文标题】在Android应用程序中单击按钮时如何打开网站?【英文标题】:How to open a website when a Button is clicked in Android application? 【发布时间】:2011-06-28 22:06:28 【问题描述】:

我正在设计一个应用程序,有几个按钮供用户点击。单击按钮后,用户将被定向到适当的网站。我该如何做到这一点?

【问题讨论】:

当你说“我正在设计一个应用程序”时,你是指一个 RCP 应用程序,还是一个不基于 RCP 而是基于 IDE 本身的 eclipse 应用程序? 【参考方案1】:

如果您谈论的是 RCP 应用程序,那么您需要的是 SWT link 小部件。

Here是官方的链接事件处理器sn-p。

更新

这是一个极简的 android 应用程序,通过 2 个按钮连接到超级用户或 ***。

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://***.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_ android:layout_>
    <TextView android:layout_ android:layout_ android:text="@string/select" />
    <Button android:layout_ android:clickable="true" android:autoLink="web" android:cursorVisible="true" android:layout_ android:id="@+id/button_so" android:text="***" android:linksClickable="true" android:onClick="goToSo"></Button>
    <Button android:layout_ android:layout_ android:text="SuperUser" android:autoLink="web" android:clickable="true" android:id="@+id/button_su" android:onClick="goToSu"></Button>
</LinearLayout>

【讨论】:

由于某种原因,我在打字时遇到了麻烦。这是我到目前为止得到的:我将 添加到清单中。我在布局中添加了一个按钮,在您可以实际看到按钮的地方。资源>可绘制>布局>主要。现在我该怎么办?再次感谢! 我说的是 Eclipse 应用程序。老实说,我不知道它基于什么。我希望它基于我未来的成功。我刚刚下载了 Eclipse,它用于开发非常简单的应用程序,例如,当用户打开我的应用程序时,它会立即将用户引导到一个网站。但我想给用户一个选择,从几个按钮中选择去合适的网站。比如你饿了想挑个地方吃饭,就选麦当劳、汉堡王、赛百味。所以我希望他点击其中一个按钮并连接到适当的网站 我想,你的意思是:一个基于android sdk和eclipse IDE的android应用。我将添加android标签。【参考方案2】:

在您的 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);
    
);

【讨论】:

【参考方案3】:

这是一个可行的答案。

清单.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_ 
  android:layout_ > 

    <Button android:id="@+id/btn_clickme" 
      android:text="Click me..." 
      android:layout_ 
      android:layout_ /> 
</LinearLayout>

【讨论】:

【参考方案4】:

导入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);
     );

【讨论】:

【参考方案5】:
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);
    
);

【讨论】:

【参考方案6】:

将此添加到按钮的点击监听器中:

  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();
    

如果您将网站 url 作为变量而不是硬编码字符串,那么不要忘记处理 ActivityNotFoundException 并显示错误。或者您可能会收到无效的 url,应用程序将简单地崩溃。 (传递随机字符串而不是 url 变量并自己查看)

【讨论】:

【参考方案7】:

你可以在你的按钮点击活动中使用它

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

并将其导入您的代码

import android.net.Uri;

【讨论】:

【参考方案8】:

我只需要一行就可以在我的应用中显示一个网站:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://match4app.com")));

【讨论】:

【参考方案9】:
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;



【讨论】:

【参考方案10】:

您可以将按钮包装在指向相应网站的锚点中。

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

当用户单击按钮(输入)时,他们将被定向到锚点的 href 属性中指定的目的地。

编辑:糟糕,我没有在问题标题中阅读“Eclipse”。我的错。

【讨论】:

是的,我没有读到您正在使用 Eclipse。忽略我的回答。 好的,谢谢。我把你的答案放到 Eclipse 中,但它没有正确阅读 即使是 html。你不能只用锚标签包裹按钮。

以上是关于在Android应用程序中单击按钮时如何打开网站?的主要内容,如果未能解决你的问题,请参考以下文章

如果有人访问我们的网站,如何打开安卓应用程序?

在 Android 移动网络应用程序中嵌入 pdf 时如何避免打开按钮?

在webview中单击按钮后,如何在android应用程序中从webview打开外部应用程序?

当我单击 main.xml 中定义的按钮时如何打开联系人

当我单击主网站中的按钮时,需要一个运行我的应用程序的意图过滤器

如何使用 android 应用程序将数据发送到网站