ExpandableListView using this tutorial을 사용하여 물리적 상수 및 해당 정보를 표시하려고합니다. 자식, 부모 및 목록을 표시 할 활동에 대한 레이아웃을 만들었습니다. MyDataProvider 클래스의 HashMap에 데이터가 저장됩니다. 나는 이것 모두가 괜찮다고 믿고 일해야한다.사용자 지정 어댑터와 함께 ExpandableListView를 사용하려고하지만 표시 할 내용을 가져올 수 없습니다.
제가 생각하기에 문제가되는 부분은 어댑터이며 아래에 포함되어 있습니다. 문제는이 액티비티로 갈 때 앱이 충돌하지 않고 완전히 빈 흰색 화면 만 표시한다는 것입니다. 그 사람이 더 잘 알려주면 나는 또한 this tutorial 보았다.
package com.gmd.referenceapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.ListView;
import com.gmd.referenceapplication.R;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class CommonConstants extends AppCompatActivity {
View view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_common_constants);
MyDataProvider dp = new MyDataProvider();
ExpandableListView view;
view = (ExpandableListView) findViewById(R.id.expandableList);
HashMap constantsHashMap;
constantsHashMap = dp.getCommonMap();
ArrayList constantsHashMapKeys = new ArrayList<String>(constantsHashMap.keySet());
MyCustomAdapter adapter = new MyCustomAdapter(this, constantsHashMap, constantsHashMapKeys);
view.setAdapter(adapter);
}
}
나는 짓을했는지 : 내가 여기에 목록을 표시하려고 클래스를 포함하는 경우에도 유용 할 수처럼
package com.gmd.referenceapplication;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by gmd on 6/13/2016.
*/
public class MyCustomAdapter extends BaseExpandableListAdapter {
private Context context;
private HashMap<String,ListViewItem> constantsHashMap;
private List<String> constantList;
public MyCustomAdapter(Context context, HashMap<String, ListViewItem> hashMap, List<String> list){
constantsHashMap = hashMap;
this.context = context;
this.constantList = list;
}
public View getChildView(int groupPosition,
int childPosition,
boolean isLastChild,View convertView, ViewGroup parent) {
String childTitle = (String) getChild(groupPosition, childPosition).toString();
if(convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.child_layout, parent, false);
}
TextView childTextView = (TextView) convertView.findViewById(R.id.textViewChild);
childTextView.setText(childTitle);
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
@Override
public int getGroupCount() {
return 0;
}
@Override
public int getChildrenCount(int groupPosition) {
return 0;
}
@Override
public String getGroup(int groupPosition) {
return constantList.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return constantsHashMap.get(this.constantList.get(groupPosition));
}
@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) {
String groupTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater inflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.parent_layout, parent, false);
}
TextView parentTextView = (TextView) convertView.findViewById(R.id.textViewParent);
parentTextView.setText(groupTitle);
return convertView;
}
}
것 같다 : 여기
내 어댑터입니다 이것에 대한 연구가 꽤 많이 있었고, 아직도 내가 뭘 잘못하고 있는지 잘 모르겠다. 그래서 나는 모든 도움에 감사 할 것이다. 감사!