2011-05-29 39 views
5

Intentando comprender Java y Android desearían ayuda con una simple tarea de abrir el navegador de un usuario después de hacer clic en un botón.Abrir el navegador a la página web Aplicación de Android

He estado haciendo tutoriales durante los últimos dos días, aunque podría ser útil si lo apuñalé y obtuve comentarios. Gracias de antemano por cualquier ayuda.

main.xml:

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/bgimage2"> 
    > 

<Button 
android:id="@+id/goButton" 
android:layout_width="150px" 
android:layout_height="wrap_content" 
android:text="@string/start" 
android:layout_x="80px" 
android:layout_y="21px" 
> 
</AbsoluteLayout> 

GetURL.java:

package com.patriotsar; 

import android.app.Activity; 
import android.content.Intent; 
import android.view.View.OnClickListener; 

String url = "http://www.yahoo.com"; 
Intent i = new Intent(Intent.ACTION_VIEW); 
Uri u = Uri.parse(url); 
i.setData(u); 


public class patriosar extends Activity { 

    private Button goButton; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 


     goButton.setOnClickListener(new OnClickListener() {   
      @Override 
      public void onClick(View v){ 
       try { 
         // Start the activity 
         startActivity(i); 
        } catch (ActivityNotFoundException e) { 
         // Raise on activity not found 
         Toast toast = Toast.makeText(context, "Browser not found.", Toast.LENGTH_SHORT); 
        } 
        } 
     }); 

    } 
} 
+2

Entonces ... ¿cuál es la pregunta? ¿Funciona el código? ¿El código falla? ¿Lo que pasa? – trutheality

+1

Además, deshazte de 'AbsoluteLayout'. Esa clase de contenedor está en desuso. Usa algo más – CommonsWare

+0

@trutheality no se ejecutará el código en el emulador. Me aseguraré de publicar mis errores en la próxima publicación. – Denoteone

Respuesta

6

Está cerca, pero algunas cosas están en el lugar equivocado o faltante. El siguiente código funciona: intenté hacer las modificaciones mínimas necesarias. Puede cargar ambas versiones en algo como WinMerge para ver exactamente qué cambió.

main.xml:

<?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" 
    android:background="@drawable/bgimage2" 
    > 

    <Button 
     android:id="@+id/goButton" 
     android:layout_width="150px" 
     android:layout_height="wrap_content" 
     android:text="@string/start" 
     android:layout_x="80px" 
     android:layout_y="21px" 
    ></Button> 
</LinearLayout> 

GetURL.java:

import android.app.Activity; 
import android.content.ActivityNotFoundException; 
import android.content.Context; 
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; 
import android.widget.Toast; 

public class GetURL extends Activity { 
    private Button goButton; 
    String url = "http://www.yahoo.com"; 
    Intent i = new Intent(Intent.ACTION_VIEW); 
    Uri u = Uri.parse(url); 
    Context context = this; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     goButton = (Button)findViewById(R.id.goButton); 
     goButton.setOnClickListener(new OnClickListener() {   
      @Override 
      public void onClick(View v){ 
       try { 
         // Start the activity 
         i.setData(u); 
         startActivity(i); 
        } catch (ActivityNotFoundException e) { 
         // Raise on activity not found 
         Toast.makeText(context, "Browser not found.", Toast.LENGTH_SHORT); 
        } 
        } 
     }); 
    } 
} 

(También es necesario un archivo bgimage2.png en /res/drawable/ y una cadena start en /res/values/strings.xml, por supuesto).

+0

Gracias por tomarse el tiempo para ayudarme, compararé ambos y descubriré qué me faltaba. – Denoteone

+1

Todo bien, pero se olvidó de mostrar un brindis: .show() – LEX

+0

Ah, gracias - Le eché un vistazo porque no era parte de la pregunta. –

4

Para simplificar se podría hacer

Intención intención = new Intent (Intent.ACTION_VIEW, Uri.parse ("http://www.yahoo.com")); startActivity (intención);

Cuestiones relacionadas