Je conçois une application avec plusieurs boutons sur lesquels les utilisateurs peuvent cliquer. Une fois le bouton cliqué, l'utilisateur est dirigé vers le site Web approprié. Comment puis-je accomplir cela?
Si vous parlez d'une application RCP, vous avez besoin du widget SWT link
.
Ici est l'extrait de gestionnaire d'événement de lien officiel.
Mettre à jour
Voici une application Android minimaliste pour se connecter au superutilisateur ou au stackoverflow avec 2 boutons.
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);
}
}
Et voici la mise en page.
<?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>
Si le temps le permet, je vais ajouter les logos du site aux boutons pour le rendre un peu plus sexy ;-)
Dans votre fichier Java, écrivez le code suivant ...
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);
}
});
Voici une réponse réalisable.
<?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>
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);
}
});
}
}
<?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>
Importer
import Android.net.Uri;
Intent openURL = new Intent(Android.content.Intent.ACTION_VIEW);
openURL.setData(Uri.parse("http://www.example.com"));
startActivity(openURL);
ou cela peut être fait en utilisant,
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);
} });
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);
}
});
Ajoutez ceci à l'écouteur de clic de votre bouton:
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();
}
Si vous avez une URL de site Web sous forme de variable au lieu de chaîne codée en dur, n'oubliez pas de gérer une exception ActivityNotFoundException et d'afficher une erreur. Ou vous pouvez recevoir une URL invalide et l'application va simplement planter. (Passez une chaîne aléatoire au lieu de la variable url
et voyez par vous-même)
vous pouvez l'utiliser sur votre activité de clic de bouton
Intent webOpen = new Intent(Android.content.Intent.ACTION_VIEW);
WebOpen.setData(Uri.parse("http://www.google.com"));
startActivity(myWebLink);
et importer ceci sur votre code
import Android.net.Uri;
Vous pouvez envelopper les boutons dans des ancres qui sont renvoyées au site Web approprié.
<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>
Lorsque l'utilisateur clique sur le bouton (entrée), il est dirigé vers la destination spécifiée dans la propriété href de l'ancre.
Edit: Oups, je n'ai pas lu "Eclipse" dans le titre de la question. Mon erreur.
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;
}
}