2010-11-25 5 views
1

Ich begann eine kleine Android-Anwendung zu lernen. Ich habe einen Eingabetext und eine Schaltfläche auf dem Bildschirm platziert. Das zeigt sich auf dem Emulator. Nachdem ich den Knopf gedrückt habe (der einen onClickListener hat) knackt die Anwendung und sagt mir auf dem Bildschirm des Emulators: "Die Anwendung ... ist unerwartet gestoppt worden. Versuchen Sie es erneut" und ich habe eine "Kraft schließen", die natürlich schließt die Anwendung. Ich habe das Projekt viele Male gereinigt und neu aufgebaut. Ich habe keine Fehler gezeigt (mit Eclipse) dies ist das Layout/main.xml. Android-Anwendung schlägt fehl und stoppt nach dem Klicken auf eine Schaltfläche

<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> 

dies ist die Aktivitätsklasse:

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(); 

} 
} 

Ich kann nicht herausfinden, was damit nicht stimmt. Irgendwelche Vorschläge werden mehr als begrüßt. Danke.

+0

Scheint, wie Sie noch haben LogCat discouver. Fenster -> Zeige Ansicht -> 'Andere': Andoird -> LogCat Dort findest du deine Fehlermeldung, die dir helfen soll, deinen Fehler zu finden. Verwenden Sie Log.d ("Ihr Tag", "Ihre Nachricht"), um Zeug zu logcat – getekha

Antwort

2

In Ihrem Layout/main.xml, müssen Sie die searchBtn

So etwas wie dies zu erklären:

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

Update: Ich habe versucht, mit ohne Fehler folgenden Code ein.

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(); 

     } 


} 

XML-Datei:

<?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

zu drucken, tut mir leid. Ich habe vergessen, diesen Code auch zu platzieren, ich habe die Schaltfläche in der XML deklariert. Wenn ich im Fehlerprotokoll nachschaue, sehe ich folgendes: Assertion failed: ContentViewer muss einen Inhaltsanbieter haben, wenn die Eingabe festgelegt ist. Ich google ein bisschen, um zu verstehen, was ich falsch gemacht habe – test

+0

Ich bin mir nicht sicher über den Fehler, aber ich aktualisierte meine Antwort, können Sie versuchen – SteD

+0

Hallo. Erstens, dafür, dass du dir die Zeit dafür genommen hast. Ich musste den Computer neu starten, um zu arbeiten. leider weiß ich immer noch nicht, warum ich diesen fehler habe, aber jetzt ist ok. Danke nochmal. – test

1

Sieht aus wie ein Nullpointer.

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

Wo der Eingang seinen Wert bekommt?

0

fügen Sie diese beiden Tasten: android: onClick = "onClick"

Verwandte Themen