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

我正在devise一个应用程序,用户点击几个button。 一旦button被点击,用户被导向到适当的网站。 我如何做到这一点?

Solutions Collecting From Web of "在Android应用程序中单击button时如何打开网站?"

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

这是官方的链接事件处理程序片段。

更新

这里是极简主义的android应用程序连接到超级用户或2个button的计算器。

 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> 

时间允许,我会添加网站标志的button,使其更有性感;-)

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

这是一个可行的答案。

的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> 
 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); } }); 

你可以使用这个button点击活动

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

并将其导入到您的代码中

 import android.net.Uri; 

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

添加到你的button的点击监听器:

  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作为一个variables,而不是硬编码的string,那么不要忘记处理一个ActivityNotFoundException并显示错误。 或者你可能会收到无效的url,一个应用程序将只会崩溃。 (通过随机string,而不是urlvariables,看看你自己)

你可以将这些button包装到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> 

当用户点击button(input)时,它们被引导到锚点的href属性中指定的目的地。

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

 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; } }