2016-11-12 7 views
0

Ich bin neu in Firebase füllen und ich dieses Tutorial bereits folgen Firecasts #2Wie Listview Form Feuerbasis

und ich habe wie diese

FATAL EXCEPTION: main 
Process: com.xenolang.xenolang, PID: 20453 
java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView 
    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:386) 
    ... 
Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView 
    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:379) 
    ... 

Fehler bekam das ist mein object_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:padding="8dp" 
    android:gravity="center" 
    android:orientation="vertical"> 

    <android.support.v7.widget.CardView 
     android:id="@+id/object_card" 
     android:layout_width="100dp" 
     android:layout_height="130dp" 
     app:cardElevation="2dp" 
     app:cardMaxElevation="4dp" 
     app:cardBackgroundColor="@color/colorPrimary" 
     app:cardCornerRadius="4dp"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:gravity="center"> 

      <TextView 
       android:id="@+id/text_native" 
       style="@style/TextAppearance.AppCompat.Large" 
       android:textStyle="bold" 
       android:textIsSelectable="false" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:textColor="@color/colorText"/> 

      <TextView 
       android:id="@+id/text_romanization" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:textIsSelectable="false" 
       android:gravity="center" 
       android:textColor="@color/colorText"/> 

      <TextView 
       android:id="@+id/text_translation" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:textIsSelectable="false" 
       android:gravity="center" 
       android:textColor="@color/colorText"/> 

     </LinearLayout> 

    </android.support.v7.widget.CardView> 

</LinearLayout> 

Object.class

public class Object { 
    private String nat; 
    private String rom; 
    private String trans; 

    public Object() {} 

    public Object(String nat, String rom, String trans) { 
     this.nat = nat; 
     this.rom = rom; 
     this.trans = trans; 
    } 

    public String getNat() { 
     return nat; 
    } 

    public String getRom() { 
     return rom; 
    } 

    public String getTrans() { 
     return trans; 
    } 
} 

Fragment.java

public class VowelsFragment extends Fragment { 

    public VowelsFragment() {} 

    private final FirebaseDatabase dbInstance = FirebaseDatabase.getInstance(); 
    private final DatabaseReference mRootRef = dbInstance.getReference(); 
    private final DatabaseReference mVowelRef = mRootRef.child(Urls.VOWEL_URL); 
    private ArrayList<Object> mObjects = new ArrayList<>(); 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View vowelView = inflater.inflate(R.layout.fragment_basic, container, false); 
     final ArrayAdapter<Object> adapter = new ArrayAdapter<Object>(getContext(), R.layout.object_layout, mObjects); 
     GridView gridVowels = (GridView) vowelView.findViewById(R.id.grid_basic); 
     gridVowels.setAdapter(adapter); 

     mVowelRef.addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
       Object objectValue = dataSnapshot.getValue(Object.class); 
       mObjects.add(objectValue); 
       adapter.notifyDataSetChanged(); 
      } 

      @Override 
      public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onChildRemoved(DataSnapshot dataSnapshot) { 

      } 

      @Override 
      public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

     return vowelView; 
    } 
} 

So können Sie mir sagen, wo ich mess up? Weil ich fühle, dass ich der Anweisung bereits gründlich folge.

Antwort