2011-09-19 56 views
0

我在這裏得到一流的轉換異常相對$佈局代碼安卓類投EXCP相對佈局

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

<RelativeLayout android:layout_height="wrap_content" android:id="@+id/relativeLayout1" android:layout_width="fill_parent"> 
    <Button android:text="Delete" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/Button2" android:layout_alignParentTop="true" android:layout_alignParentRight="true"></Button> 
    <Button android:text="Edit" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button1" android:layout_alignParentTop="true" android:layout_toLeftOf="@+id/Button2"></Button> 
    <TextView android:text="TextView" android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/button1"></TextView> 

</RelativeLayout> 



</LinearLayout> 

import java.util.List; 

import android.app.ExpandableListActivity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AbsListView; 
import android.widget.BaseExpandableListAdapter; 
import android.widget.ExpandableListAdapter; 
import android.widget.TextView; 

public class options extends ExpandableListActivity { 

    ExpandableListAdapter mAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.list); 

     mAdapter = new MyExpandableListAdapter(); 
     setListAdapter(mAdapter);    
    } 

    public class MyExpandableListAdapter extends BaseExpandableListAdapter{ 

     private String[] groups = { "People Names", "Dog Names", "Cat Names", "Fish Names" }; 
     private String[][] children = { 
       { "Arnold", "Barry", "Chuck", "David" }, 
       { "Ace", "Bandit", "Cha-Cha", "Deuce" }, 
       { "Fluffy", "Snuggles" }, 
       { "Goldy", "Bubbles" } 
     }; 
     @Override 
     public Object getChild(int groupPosition, int childPosition) { 
      return children[groupPosition][childPosition]; 
     } 
     @Override 
     public long getChildId(int groupPosition, int childPosition) { 
      return childPosition; 
     } 
     @Override 
     public View getChildView(int groupPosition, int childPosition, 
       boolean isLastChild, View convertView, ViewGroup parent) { 
      TextView textView = getGenericView(); 
      textView.setText(getChild(groupPosition, childPosition).toString()); 
      return textView; 
     } 
     @Override 
     public int getChildrenCount(int groupPosition) { 
      return children[groupPosition].length; 
     } 
     @Override 
     public Object getGroup(int groupPosition) { 
      return groups[groupPosition]; 
     } 
     @Override 
     public int getGroupCount() { 
      return groups.length; 
     } 
     @Override 
     public long getGroupId(int groupPosition) { 
      return groupPosition; 
     } 
     @Override 
     public View getGroupView(int groupPosition, boolean isExpanded, 
       View convertView, ViewGroup parent) { 
      TextView textView = getGenericView(); 
      textView.setText(getGroup(groupPosition).toString()); 
      return textView; 
     } 
     @Override 
     public boolean hasStableIds() { 
      return true; 
     } 
     @Override 
     public boolean isChildSelectable(int groupPosition, int childPosition) { 
      return true; 
     } 

     public TextView getGenericView() { 
      // Layout parameters for the ExpandableListView 
      //AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
      //  ViewGroup.LayoutParams.FILL_PARENT, 64); 

      //TextView textView = new TextView(options.this); 
      // textView.setLayoutParams(lp); 
      // Center the text vertically 
      // textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); 
      // Set the text starting position 
      //textView.setPadding(60, 0, 0, 0); 

      //TextView textView = (TextView) findViewById(R.id.textView1); 

      //return textView; 

      LayoutInflater inflater = (LayoutInflater)options.this.getSystemService 
         (Context.LAYOUT_INFLATER_SERVICE); 

      View v = inflater.inflate(R.layout.row, null); 

      TextView textView = (TextView) v.findViewById(R.id.textView1); 

      return textView; 

     } 

    } 
} 
在評論最後getGenericView()代碼

工作正常,但我試圖從row.xml這使我的錯誤膨脹。

+0

添加您的堆棧跟蹤 – blessenm

回答

0

不要將行充氣到視圖中。至少去ViewGroup。查看沒有孩子,所以findViewById的實現不能對兒童的搜索視圖

這應該工作:

 ViewGroup v = (ViewGroup) inflater.inflate(R.layout.row, null); 
     TextView textView = (TextView) v.findViewById(R.id.textView1); 
+0

確定讓我來試試這個 – vital

+0

都能跟得上沒有工作:(線程ID錯誤/ AndroidRuntime(271):未捕獲的處理程序:由於未捕獲的異常導致主線程退出 錯誤/ AndroidRuntime(271):java.lang.ClassCastException:android.widget.RelativeLayout $ LayoutParams 錯誤/ AndroidRuntime(271):在android.widget.ListView.measureScrapChild(ListView.java:1068) 錯誤/ AndroidRuntime(271):在android.widget.ListView.measureHeightOfChildren(ListView.java:1149) 錯誤/ AndroidRuntime(271):在android.widget.ListView.onMeasure(ListView.java:1060) 等等類似錯誤的長列表 – vital

+0

這似乎是在ListView的代碼中發生的。在代碼塊中將整個事件複製到您的問題中,以便我們可以看到最後一個用戶代碼(請注意,堆棧跟蹤頂部的所有方法和代碼行實際上都是在Android框架中執行的代碼)。 – Rich