10-29 16:49:12.826: E/AndroidRuntime(653): FATAL EXCEPTION: main
10-29 16:49:12.826: E/AndroidRuntime(653): java.lang.NullPointerException
10-29 16:49:12.826: E/AndroidRuntime(653): at android.widget.AbsListView.obtainView(AbsListView.java:1432)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.widget.ListView.onMeasure(ListView.java:1127)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.view.View.measure(View.java:8313)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.widget.RelativeLayout.measureChild(RelativeLayout.java:566)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:381)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.view.View.measure(View.java:8313)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.view.View.measure(View.java:8313)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.view.View.measure(View.java:8313)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.view.View.measure(View.java:8313)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.os.Handler.dispatchMessage(Handler.java:99)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.os.Looper.loop(Looper.java:123)
10-29 16:49:12.826: E/AndroidRuntime(653): at android.app.ActivityThread.main(ActivityThread.java:3683)
10-29 16:49:12.826: E/AndroidRuntime(653): at java.lang.reflect.Method.invokeNative(Native Method)
10-29 16:49:12.826: E/AndroidRuntime(653): at java.lang.reflect.Method.invoke(Method.java:507)
10-29 16:49:12.826: E/AndroidRuntime(653): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-29 16:49:12.826: E/AndroidRuntime(653): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-29 16:49:12.826: E/AndroidRuntime(653): at dalvik.system.NativeStart.main(Native Method)
您好 我正在尝试创建ExpendableList,但在我之间我得到这个例外,我试着这样我不知道我错在哪里?
Parent 1
parent 2
child1
child2
child3
parent 3
parent 4
child1
所以我尝试这样做一个xml route_dashboard.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ExpandableListView
android:id="@+id/expandableListView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
>
</ExpandableListView>
</RelativeLayout>
自定义适配器
public class CustomExpendableListView extends BaseExpandableListAdapter {
private String[] fatherName={"naveen","ravi","sharma","uncle","rahat"};
String[] raviChildrenname={"abc","pqr","mnn"};
String[] sharmaChildrenname={"zxa","yh","er"};
Context context;
public CustomExpendableListView(Context context) {
this.context=context;
}
@Override
public int getGroupCount() {
return fatherName.length;
}
@Override
public int getChildrenCount(int groupPosition) {
if (fatherName[groupPosition].equalsIgnoreCase("ravi")) {
return raviChildrenname.length;
}
if (fatherName[groupPosition].equalsIgnoreCase("sharma")) {
return sharmaChildrenname.length;
}
return 0;
}
@Override
public Object getGroup(int groupPosition) {
return null;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return null;
}
@Override
public long getGroupId(int groupPosition) {
return 0;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return 0;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
/* LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.parenttextview, null);
}
TextView item = (TextView) convertView.findViewById(R.id.parentTextView);
item.setText(fatherName[groupPosition]);*/
return null;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.child_row, null);
}
TextView item = (TextView) convertView.findViewById(R.id.childTextView);
if (fatherName[groupPosition].equalsIgnoreCase("ravi")) {
item.setText(raviChildrenname[childPosition]);
}
if (fatherName[groupPosition].equalsIgnoreCase("sharma")) {
item.setText( sharmaChildrenname[childPosition]);
}
return item;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return false;
}
}
child.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/childTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
parenttextviewxml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/parentTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
private String[] fatherName={"naveen","ravi","sharma","uncle","rahat"};
String[] raviChildrenname={"abc","pqr","mnn"};
String[] sharmaChildrenname={"zxa","yh","er"};
fatherName 是父节点。 raviChildrenname 是ravi父节点的子节点.sharmaChildrenname是sharma的子节点
答案 0 :(得分:0)
您正在从适配器null
返回getGroupView()
。
适配器getView()
应始终返回非空View
。
答案 1 :(得分:0)
你的getchild为null试试这个并为getgroupview做同样的事情
@Override
public Object getChild(int groupPosition, int childPosition) {
return theChildArray[childPosition];
}
@Override
public Object getGroup(int groupPosition) {
return theParentArray[groupPosition];
}