맹목적인 문제는 용서해주세요. 그러나 내 앱이 무슨 문제로 인해 (이번에는) 충돌하는지 알 수 없습니다. XML 레이아웃 파일을 확장 가능한 목록보기로 확장하려고합니다. 여기 Expandable adapter 어댑터가 계속 충돌 함 Activity
package com.anthonyce.mcathomie;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
public class PlayoptionsActivity extends Activity {
ExpandableListView Mtopics;
ExpandableAdapter MtopicsAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_playoptions);
//set up adapter
MtopicsAdapter = new ExpandableAdapter();
Mtopics = (ExpandableListView) findViewById(R.id.mtopicsListView);
Mtopics.setAdapter(MtopicsAdapter);
//Mtopics.setGroupIndicator(null);
}
public class ExpandableAdapter extends BaseExpandableListAdapter {
private Context context;
private String[] groups = { "People Names", "Dog Names", "Cat Names",
"Fish Names" };
private String[][] children = { { "Arnold" }, { "Ace" }, { "Fluffy" },
{ "Goldy" } };
public Object getChild(int groupPosition, int childPosition) {
return children[groupPosition][childPosition];
}
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
View childView;
LayoutInflater childInflate = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
childView = childInflate.inflate(R.layout.mtopics_childrow, parent, false);
TextView childtxt = (TextView)childView.findViewById(R.id.mtopicchildtext);
childtxt.setText(getChild(groupPosition, childPosition).toString());
return childView;
}
public int getChildrenCount(int groupPosition) {
return children[groupPosition].length;
}
public Object getGroup(int groupPosition) {
return groups[groupPosition];
}
public int getGroupCount() {
return groups.length;
}
public long getGroupId(int groupPosition) {
return groupPosition;
}
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
View groupView;
groupView = new View(context);
LayoutInflater groupInflate = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
groupView = groupInflate.inflate(R.layout.mtopics_grouprow, parent, false);
TextView grouptxt = (TextView)groupView.findViewById(R.id.mtopicgrouptext);
grouptxt.setText(getGroup(groupPosition).toString());
return groupView;
}
public boolean hasStableIds() {
return true;
}
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
}
그리고
내가 그것을 작동되기 전에<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mtopicgrouplin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="fill">
<TextView
android:gravity="left"
android:id="@+id/mtopicgrouptext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:textStyle="bold" />
<CheckBox
android:id="@+id/checkBoxgroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
팽창하기 위해 노력하고있어 그룹 레이아웃의 XML하지만 텍스트가 그냥 충돌이 코드를 지금 보여주는 하였다. 나는 당신은 context
에 값을 설정하지 해독
09-05 17:09:33.919: E/AndroidRuntime(429): FATAL EXCEPTION: main
09-05 17:09:33.919: E/AndroidRuntime(429): java.lang.NullPointerException
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.ViewConfiguration.get(ViewConfiguration.java:228)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.View.<init>(View.java:1878)
09-05 17:09:33.919: E/AndroidRuntime(429): at com.anthonyce.mcathomie.PlayoptionsActivity$ExpandableAdapter.getGroupView(PlayoptionsActivity.java:118)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:445)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.AbsListView.obtainView(AbsListView.java:1430)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.ListView.onMeasure(ListView.java:1127)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.View.measure(View.java:8313)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.View.measure(View.java:8313)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.View.measure(View.java:8313)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.View.measure(View.java:8313)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.View.measure(View.java:8313)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.os.Handler.dispatchMessage(Handler.java:99)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.os.Looper.loop(Looper.java:123)
09-05 17:09:33.919: E/AndroidRuntime(429): at android.app.ActivityThread.main(ActivityThread.java:3683)
09-05 17:09:33.919: E/AndroidRuntime(429): at java.lang.reflect.Method.invokeNative(Native Method)
09-05 17:09:33.919: E/AndroidRuntime(429): at java.lang.reflect.Method.invoke(Method.java:507)
09-05 17:09:33.919: E/AndroidRuntime(429): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-05 17:09:33.919: E/AndroidRuntime(429): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-05 17:09:33.919: E/AndroidRuntime(429): at dalvik.system.NativeStart.main(Native Method)
다른 행에'context'을 사용했기 때문일 것입니다. 생성자를 사용하면 크래시가 발생하지 않습니다. – Dalmas
무슨 지적! 나는 몇 시간 동안 꼼짝 않고 바라 보았다. 불행히도이 문제를 바로 잡는 것은 아무 것도하지 않았습니다. 나는 심지어 선을 제거하려고 노력했다. 그리고 그것은 아직도 충돌한다. 내 레이아웃 인플레이 터 컨텍스트도 정의해야합니까? (LayoutInflater) context.getSystemService (Context.LAYOUT_INFLATER_SERVICE); – mango
예,이 행에서도 예외가 발생합니다. – Dalmas