Fehler beim HInzufügen neuer Controls auf einer View

  • Hallo,


    ich will bei Textänderungen eine Liste in einem LinearLayout ausgeben mit Suchergebnissen.
    Leider stürt bei meinem Code die App nach Input ins Textfeld ab.
    Kann mir jemand sagen, woran das liegt? thx


    [code=java]
    public void show_city_search(View view)
    {
    setContentView(R.layout.city_search);


    final EditText txtSearch = (EditText)findViewById(R.id.txtSearch);
    final LinearLayout lytCities = (LinearLayout)findViewById(R.id.lytCities);


    txtSearch.addTextChangedListener(new TextWatcher() {
    public void afterTextChanged(Editable s) {


    for(Data.City city: getData.FindCity(txtSearch.getText()))
    {
    Button btn = new Button(null);
    btn.setText(city.Postcode + " " + city.Name);


    lytCities.addView(btn);
    }


    }


    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
    public void onTextChanged(CharSequence s, int start, int before, int count) {


    }
    });
    [code=java]

  • Hi baer,


    so ganz ohne LogCat Auszug kann man dazu eigentlich nicht viel sagen. Du hast ja nichtmal gesagt mit welcher Exception er sich verabschiedet. Das einzige, was ich mir gerade vorstellen kann ist, dass da mal null kommt: for(Data.City city: getData.FindCity(txtSearch.getText()))


    Ansonsten stehen noch so viele Möglichkeiten offen, Activity nicht in die Manifest eingetragen, fehlender Permissions .... würde man alles im LogCat sehen.


    Gruß,
    matze

  • Also die Methode solle immer Daten liefern:


    public List<City> FindCity(Editable editable) {
    List<City> cities = new ArrayList<City>();


    cities.add(new City("35434", "htrshse "));
    cities.add(new City("34568", "srdg hewzh"));
    cities.add(new City("78645", "dsfheszh"));
    cities.add(new City("37837", "sdzgsgd"));
    cities.add(new City("07860", "esrh seh"));


    return cities;
    }


    Zum LogCat Eintrag habe ich keinen Anhaltspunkt gefunden, der mir den Fehler erklären könnte:


    03-29 19:55:31.329: W/dalvikvm(1325): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
    03-29 19:55:31.339: E/AndroidRuntime(1325): FATAL EXCEPTION: main
    03-29 19:55:31.339: E/AndroidRuntime(1325): java.lang.NullPointerException
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.ViewConfiguration.get(ViewConfiguration.java:211)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.View.<init>(View.java:1814)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.View.<init>(View.java:1856)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.widget.TextView.<init>(TextView.java:327)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.widget.Button.<init>(Button.java:69)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.widget.Button.<init>(Button.java:65)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.widget.Button.<init>(Button.java:61)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at test.test.TestActivity$1.afterTextChanged(TestActivity.java:54)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.widget.TextView.sendAfterTextChanged(TextView.java:6145)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:6328)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.text.SpannableStringBuilder.sendTextHasChanged(SpannableStringBuilder.java:897)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:353)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:269)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:432)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:409)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:28)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:195)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:132)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.widget.TextView.doKeyDown(TextView.java:4304)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.widget.TextView.onKeyDown(TextView.java:4149)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.KeyEvent.dispatch(KeyEvent.java:1037)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.View.dispatchKeyEvent(View.java:3740)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1667)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1102)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.app.Activity.dispatchKeyEvent(Activity.java:2063)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1643)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2471)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2441)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.view.ViewRoot.handleMessage(ViewRoot.java:1735)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.os.Handler.dispatchMessage(Handler.java:99)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.os.Looper.loop(Looper.java:123)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at android.app.ActivityThread.main(ActivityThread.java:4627)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at java.lang.reflect.Method.invokeNative(Native Method)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at java.lang.reflect.Method.invoke(Method.java:521)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    03-29 19:55:31.339: E/AndroidRuntime(1325): at dalvik.system.NativeStart.main(Native Method)




    Gibts da einen Hinweis was es sein könnte in dem Log, wenn ja wo genau? thx

  • Zeile 3


    java.lang.NullPointerException



    Irgendwie scheint schon das Initalisieren deines views fehlzuschlagen, weil du auf ein Objekt zugreifst, was noch gar nicht existiert. Daher der Nullpointer.
    Jetzt heisst es den Debugger anwerfen und Schritt für Schritt durchsteppen, dann siehst du ja wo er hängen bleibt.


    Meist ist auch nur das Init irgendwie falsch. (Verweis auf falsches layout, Zugriff auf falsche ID ect)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!