2010-11-25 23 views
1

J'ai commencé une petite application Android à apprendre. J'ai placé un texte d'entrée et un bouton sur l'écran. Cela montre sur l'émulateur. Après avoir appuyé sur le bouton (qui a un onClickListener) l'application se fissure et me dit sur l'écran de l'émulateur: "L'application ... s'est arrêtée de manière inattendue. Réessayez" et j'ai une "Force close", qui se ferme bien sûr L'application. J'ai nettoyé et reconstruit le projet plusieurs fois. je n'ai pas d'erreur affichés (en utilisant Eclipse) c'est la mise en page/main.xml:. L'application Android échoue et s'arrête après avoir cliqué sur un bouton

<ScrollView android:id="@+id/widget37" android:layout_width="247px" 
    android:layout_height="282px" android:scrollbars="vertical" 
    android:layout_x="38px" android:layout_y="130px"> 
</ScrollView> 
<RadioButton android:id="@+id/compactList" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:text="Compact List" android:layout_x="36px" android:layout_y="78px"> 
</RadioButton> 
<RadioButton android:id="@+id/detailedList" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:text="Detailed List" android:layout_x="176px" 
    android:layout_y="78px"> 
</RadioButton> 

c'est la classe d'activité:

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class ShowStuffs extends Activity implements View.OnClickListener { 

private Button searchbtn; 
private EditText input; 

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.main); 
    searchbtn = (Button)findViewById(R.id.searchBtn); 
    searchbtn.setOnClickListener(this); 
} 
public void onClick(View view) { 
    System.out.println("on click..."); 
    String searchedText = input.getText().toString(); 

} 
} 

Je ne peux pas comprendre ce qui ne va pas. Toutes les suggestions sont plus que bienvenues. Merci.

+0

On dirait que vous avez encore discouver LogCat. Fenêtre -> Afficher la vue -> 'Autre': Andoird -> LogCat Vous y trouverez votre message d'erreur qui devrait vous aider à localiser votre bug. Utilisez Log.d ("votre tag", "votre message") pour imprimer des choses à logcat – getekha

Répondre

2

Dans votre mise en page/main.xml, vous devez déclarer le btnChercher

Quelque chose comme ceci:

<Button android:id="@+id/searchBtn" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Search Button"/> 

Mise à jour: J'ai essayé avec le code suivant sans erreur.

package com.dude.test1; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class foo extends Activity implements View.OnClickListener { 

     private Button searchbtn; 
     private EditText input; 

     public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 
      setContentView(R.layout.main); 
      searchbtn = (Button)findViewById(R.id.searchBtn); 
      input = (EditText) findViewById(R.id.input); 
      searchbtn.setOnClickListener(this); 
     } 
     public void onClick(View view) { 
      //System.out.println("on click..."); 
Toast.makeText(this, "clicked!", Toast.LENGTH_SHORT).show(); 
      String searchedText = input.getText().toString(); 

     } 


} 

fichier 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="#FFFFFF"> 
    <ScrollView android:id="@+id/widget37" android:layout_width="247px" 
     android:layout_height="282px" android:scrollbars="vertical" 
     android:layout_x="38px" android:layout_y="130px"> 
    </ScrollView> 
    <RadioButton android:id="@+id/compactList" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:text="Compact List" android:layout_x="36px" android:layout_y="78px"> 
    </RadioButton> 
    <RadioButton android:id="@+id/detailedList" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:text="Detailed List" android:layout_x="176px" 
     android:layout_y="78px"> 
    </RadioButton> 
    <Button android:id="@+id/searchBtn" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text="Search Button" /> 
    <EditText android:id="@+id/input" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 
+0

oh, je suis désolé. J'ai oublié de placer ce code aussi, j'ai déclaré le bouton dans le xml. en regardant dans le journal des erreurs je vois ceci: assertion a échoué: ContentViewer doit avoir un fournisseur de contenu lorsque l'entrée est définie. Je googleing un peu pour comprendre ce que j'ai fait mal – test

+0

Je ne suis pas trop sûr de l'erreur, mais j'ai mis à jour ma réponse, vous pouvez essayer – SteD

+0

bonjour. Tout d'abord merci d'avoir pris le temps pour ça. J'ai dû redémarrer l'ordinateur pour travailler. Malheureusement, je ne sais toujours pas pourquoi j'ai eu cette erreur, mais maintenant c'est ok. Merci encore. – test

1

On dirait un NullPointerException.

String searchedText = input.getText().toString(); 

Où l'entrée obtient sa valeur?

0

ajouter ceci à deux boutons: android: onclick = "onClick"