App -Abstürze beim Start aufgrund von java.lang.unsupportedOperationException: AddView (Ansicht, LayoutParams) wird in AdapterView nicht unterstützt

StackOverflow https://stackoverflow.com/questions/4589834

  •  15-10-2019
  •  | 
  •  

Frage

Meine App stürzt jedes Mal ab, wenn ich sie im Emulator starte. Hier ist der Logcat:

01-02 17:20:58.859: ERROR/AndroidRuntime(249): Uncaught handler: thread main exiting due to uncaught exception

01-02 17:20:58.889: ERROR/AndroidRuntime(249): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shoppinglist/com.shoppinglist.ShoppingList}: java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at android.app.ActivityThread.access$2100(ActivityThread.java:116)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at android.os.Handler.dispatchMessage(Handler.java:99)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at android.os.Looper.loop(Looper.java:123)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at android.app.ActivityThread.main(ActivityThread.java:4203)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at java.lang.reflect.Method.invokeNative(Native Method)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at java.lang.reflect.Method.invoke(Method.java:521)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)

01-02 17:20:58.889: ERROR/AndroidRuntime(249):     at dalvik.system.NativeStart.main(Native Method)**

Hier ist meine Java -Datei:

package com.shoppinglist;

import android.app.ListActivity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ShoppingList extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button button1main = (Button) findViewById(R.id.Button01main);
     button1main.setOnClickListener(new OnClickListener()  {
     @Override
      public void onClick(View v)  {
       final Dialog dialog = new Dialog(ShoppingList.this);
       dialog.setContentView(R.layout.maindialog);
       dialog.setCancelable(true);
       Button button = (Button) dialog.findViewById(R.id.cancel);
       button.setOnClickListener(new OnClickListener()  {
        @Override
         public void onClick(View v)  {
          dialog.dismiss();
        }
        });
       dialog.show();
       }
     });
    }
}

Mein layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFCC00"
    android:padding="10dp"
    android:id="@+id/listview">
        <Button
            android:id="@+id/Button01main"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
   android:text="Add item..."/>
</ListView> 

Mein Dialog XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:id="@+id/layout_root"
  android:orientation="vertical"
  android:background="#FFFFFF"
  android:minHeight="100dp"
  android:minWidth="300dp">
  <EditText
    android:id="@+id/edittext"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:hint="Type the name of an item here...">
   </EditText>
 <LinearLayout
  android:id="@+id/button_layout"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal"
  android:layout_gravity="right">
  <Button
   android:id="@+id/ok"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="OK"
   android:layout_gravity="bottom">
   </Button>
  <Button
   android:id="@+id/cancel"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Cancel"
   android:layout_gravity="bottom">
   </Button>
  </LinearLayout> 
</LinearLayout>

Jede Hilfe wird geschätzt. Ich brauche Code -Beispiele für Korrekturen, ich bin nicht sehr erfahren.

War es hilfreich?

Lösung

In Ihrem Layout XML versuchen Sie, eine Schaltfläche in eine Liste hinzuzufügen. Die ListView ist eine AdapterView, wie der Fehler sagt, daher muss sie von einem Adapter bevölkert werden, der eine Liste ähnlicher "Dinge" enthält. Dies können eine Liste von Zeichenfolgen (aus einer Array -Liste) oder eine Liste benutzerdefinierter Ansichten sein, die Sie Erstellen, aber sie sind alle im Grunde genommen die gleiche Art von Dingen - Sie können beispielsweise eine Schaltfläche hinzufügen und dann zu einer anderen eine Zeichenfolge hinzufügen. Erstellen Sie einen Adapter, um die gewünschten Dinge in Ihrer Liste zu geben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top