2016-12-25 6 views
0

Ich bin ziemlich neu in der Android-Entwicklung, und ich beginne meine erste Anwendung.URL nicht auf Knopfklick öffnen

Ich konfrontiert mein erstes Problem bei der Entwicklung, und das Problem ist "beim Klicken auf eine Schaltfläche, öffnet sich die URL nicht, anstatt dass die App abstürzt." .

Dies ist MainActivity.java:

package com.rodentsmobile.app; 

import android.app.*; 
import android.os.*; 
import android.content.*; 
import android.media.*; 
import android.net.*; 
import android.security.*; 
import android.system.*; 
import android.view.*; 
import android.util.*; 
import java.lang.*; 
import java.net.*; 

public class MainActivity extends Activity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    public void ViewAptoide(View v) 
    { 
     Uri uri = Uri.parse("http://www.google.com"); 
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
     startActivity(intent); 
    } 
} 

Erstens war es public void ViewAptoide() aber ich dachte, das ist die View v zu vergessen der Grund der App abstürzt und die URL nicht öffnen .. Aber das war nicht der Grund, .

aber hier ist main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"> 

    <ImageView 
     android:layout_height="300px" 
     android:layout_width="700px" 
     android:src="@drawable/image_1" 
     android:layout_centerInParent="true" 
     android:id="@+id/mainImageView1"/> 

    <TextView 
     android:layout_height="wrap_content" 
     android:text="Rodents Mobile" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:layout_width="wrap_content" 
     android:layout_below="@id/mainImageView1" 
     android:layout_centerInParent="true" 
     android:id="@+id/mainTextView1"/> 

    <Button 
     android:layout_height="wrap_content" 
     android:text="Aptoide" 
     android:layout_width="wrap_content" 
     android:layout_below="@id/mainTextView1" 
     android:layout_centerInParent="true" 
     android:onClick="viewAptoide" 
     android:translationY="15dp"/> 

</RelativeLayout> 

Dank!

+0

bitte Ihre Crashlog – r4jiv007

+0

@ r4jiv007 bieten - wie Sie es sehen? In welchem ​​Verzeichnis der App/Android System? – protld

+0

Wo ist Ihre Webansicht –

Antwort

3

In xml gefunden haben Sie verwendet

android:onClick="viewAptoide" . 

Und in der Aktivität verwendet man

public void ViewAptoide(View v) 
    { 
     Uri uri = Uri.parse("http://www.google.com"); 
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
     startActivity(intent); 
    } 

es ersetzen mit

public void viewAptoide (View v) 
    { 
     Uri uri = Uri.parse("http://www.google.com"); 
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
     startActivity(intent); 
    } 

überprüfen xml auf Klick Namen und Methodennamen sollten gleich sein.

+0

Genau wie ich sagen wollte! Gute Antwort. – ACluelessProgramer

+0

Vielen Dank!Das Problem ist jetzt behoben, ich wusste nicht, dass Android und Java die Groß-/Kleinschreibung beachten. – protld

+0

Manchmal passiert es, dass wir einige kleine Dinge ignorieren. . –

2

Ihre Taste ruft die Methode

android:onClick="viewAptoide" 

Während Ihre Methodennamen

ist
 public void ViewAptoide 

Bitte stellen Sie sicher die Namensgebung konsistent ist ansonsten Ihre Methode nicht

+0

Vielen Dank! Ich habe es gewählt, aber ich habe die erste Antwort als akzeptierte Antwort markiert! – protld

1

Das Attribut onClick der Schaltfläche auf

android:onClick="viewAptoide" 
gesetzt

Ihre Methodennamen ändern zu

public void viewAptoide 

Vereinbarungsmethodennamen sollten mit einem Kleinbuchstaben in Java starten.

Auch da Sie das Internet ACTION_VIEW Absicht zugreifen, stellen Sie sicher, dass Sie die folgende Berechtigung in AndroidManifest.xml Datei

<uses-permission android:name="android.permission.INTERNET" /> 
+0

Vielen Dank! Ich habe es gewählt, aber ich habe die erste Antwort als akzeptierte Antwort markiert! – protld

+0

Kein Problem .. Hat es ohne die Internet-Erlaubnis funktioniert? –

+0

Es funktioniert sogar ohne die Internet-Erlaubnis, weil ich kein WebView verwenden möchte, möchte ich nur die URL im Standardbrowser öffnen. – protld

Verwandte Themen