Ich entwerfe eine App mit mehreren Schaltflächen, auf die Benutzer klicken können. Sobald Sie auf die Schaltfläche klicken, wird der Benutzer zur entsprechenden Website geleitet. Wie mache ich das?
Wenn Sie von einer RCP-App sprechen, benötigen Sie das SWT link
-Widget.
Hier ist der offizielle Link-Event-Handler-Snippet.
Update
Hier ist die minimalistische Android-Anwendung, um mit 2 Tasten eine Verbindung zum Superuser oder Stackoverflow herzustellen.
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);
}
}
Und hier ist das Layout.
<?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>
Wenn es die Zeit zulässt, füge ich den Schaltflächen die Site-Logos hinzu, um es etwas sexyer zu machen ;-)
Schreiben Sie den folgenden Code in Ihre Java-Datei ...
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);
}
});
Hier ist eine praktikable Antwort.
<?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>
import Android.net.Uri;
importieren
Intent openURL = new Intent(Android.content.Intent.ACTION_VIEW);
openURL.setData(Uri.parse("http://www.example.com"));
startActivity(openURL);
oder es kann mit getan werden,
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);
}
});
Fügen Sie dies dem Klicklistener Ihrer Schaltfläche hinzu:
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();
}
Wenn Sie eine Website-URL als Variable anstelle einer hartcodierten Zeichenfolge haben, vergessen Sie nicht, eine ActivityNotFoundException zu behandeln und einen Fehler anzuzeigen. Oder Sie erhalten eine ungültige URL und die App stürzt einfach ab. (Übergeben Sie eine zufällige Zeichenfolge anstelle der Variable url
und sehen Sie selbst)
sie können dies für Ihre Button-Klick-Aktivität verwenden
Intent webOpen = new Intent(Android.content.Intent.ACTION_VIEW);
WebOpen.setData(Uri.parse("http://www.google.com"));
startActivity(myWebLink);
und importieren Sie dies in Ihren Code
import Android.net.Uri;
Sie können die Schaltflächen in Anker umschließen, die auf der entsprechenden Website angezeigt werden.
<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>
Wenn der Benutzer auf die Schaltfläche (Eingabe) klickt, wird er zu dem in der Eigenschaft href des Ankers angegebenen Ziel geleitet.
Edit: Hoppla, ich habe "Eclipse" im Fragetitel nicht gelesen. Mein Fehler.
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;
}
}