您好我想从json创建三级可扩展列表视图。 我已经创建了可扩展列表视图两个两级,但对于三个级别我没有怎么办请,如果有任何身体请不要帮我完成它。 这是我创建的代码。
我的主要活动
String Tag="MainActivity";
private ExpandableListView expandableListView;
ArrayList<String>mainlist =new ArrayList<>();;
HashMap<String, List<String>> childContent = new HashMap<String, List<String>>();
HashMap<String, HashMap<List<String>,List<String>>> subchildContent = new HashMap<String, HashMap<List<String>,List<String>>>();
List<String> childlist;
List<String> subchildlist;
private List<String> parentHeaderInformation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new ReleaseOverviewReleaseAsynchTask().execute();
}
@Override
protected void onResume() {
super.onResume();
expandableListView = (ExpandableListView)findViewById(R.id.expandableListView);
//ExpandableListAdapter expandableListViewAdapter = new ExpandableListAdapter(getApplicationContext(), mainlist, childContent);
ChildSubChildExpandableListAdapter adapter=new ChildSubChildExpandableListAdapter(getApplicationContext(),mainlist,childlist,childContent);
expandableListView.setAdapter(adapter);
}
class ReleaseOverviewReleaseAsynchTask extends AsyncTask<Void,Void,Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
String jsonStr = Util.loadJSONFromAsset(MainActivity.this,"release.json");
if (jsonStr != null) {
try {
JSONArray array = new JSONArray(jsonStr);
for (int i = 0; i < array.length(); i++) {
JSONObject jo_object = array.getJSONObject(i);
childlist= new ArrayList<String>();
subchildlist= new ArrayList<String>();
String release= jo_object.get("Release").toString();
mainlist.add(jo_object.get("Release").toString());
Log.i("main release",release);
JSONArray jsonArrayDetails=jo_object.getJSONArray("details");
if (!jsonArrayDetails.isNull(i)){
JSONObject jo_object1 = jsonArrayDetails.getJSONObject(i);
String builddate= jo_object1.get("Build Date").toString();
Log.i(Tag,builddate);
String deploydate= jo_object1.get("Deploy Date").toString();
Log.i(Tag,deploydate);
String respindate= jo_object1.get("Respin Date").toString();
Log.i(Tag,respindate);
String releaselead= jo_object1.get("Release Lead").toString();
Log.i(Tag,releaselead);
String engineerlead= jo_object1.get("Engineering Lead").toString();
Log.i(Tag,engineerlead);
String testlead=jo_object1.get("Test Lead").toString();
Log.i(Tag,testlead);
}
JSONArray childarray=jo_object.getJSONArray("children");
for (int i_child = 0; i_child < childarray.length(); i_child++) {
JSONObject jo_objectchild = childarray.getJSONObject(i_child);
childlist.add(jo_objectchild.get("Release").toString());
Log.i("child release",jo_objectchild.get("Release").toString());
JSONArray subchildarray=jo_objectchild.getJSONArray("children");
for (int i_subchild=0;i_subchild<=subchildarray.length();i_subchild++){
if (!subchildarray.isNull(i_subchild)){
JSONObject jo_objectsubchild = subchildarray.getJSONObject(i_subchild);
Log.i("sub release",jo_objectsubchild.get("Release").toString());
subchildlist.add(jo_objectsubchild.get("Release").toString());
}
/*JSONObject jo_objectsubchild = subchildarray.getJSONObject(i_subchild);
*/
}
}
childContent.put(mainlist.get(i),subchildlist);
}
}
catch (JSONException e) {
e.printStackTrace();
}
}
else{
// Log.e(TAG, "Couldn't get json from server.");
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Couldn't get json from server. Check LogCat for possible errors!",
Toast.LENGTH_LONG)
.show();
}
});
}
return null;
}
我的父展开式列表视图是
public class ExpandableListAdapter extends BaseExpandableListAdapter {
private Context context;
private List<String> parentDataSource;
private HashMap<String, List<String>> childDataSource;
private HashMap<String, List<String>> subchildDataSource;
public ExpandableListAdapter(Context context, List<String> childParent, HashMap<String, List<String>> child){
this.context = context;
this.parentDataSource = childParent;
this.childDataSource = child;
}
@Override
public int getGroupCount() {
return this.parentDataSource.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return this.childDataSource.get(this.parentDataSource.get(groupPosition)).size();
}
@Override
public Object getGroup(int groupPosition) {
return parentDataSource.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return this.childDataSource.get(parentDataSource.get(groupPosition)).get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
View view = convertView;
if(view == null){
LayoutInflater inflater = (LayoutInflater)this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.parentlayout, parent, false);
}
String parentHeader = (String)getGroup(groupPosition);
TextView parentItem = (TextView)view.findViewById(R.id.parent_layout);
parentItem.setText(parentHeader);
notifyDataSetChanged();
return view;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View view = convertView;
if(view == null){
LayoutInflater inflater = (LayoutInflater)this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.childlayout, parent, false);
}
String childName = (String)getChild(groupPosition, childPosition);
TextView childItem = (TextView)view.findViewById(R.id.child_layout);
childItem.setText(childName);
notifyDataSetChanged();
return view;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
这是三个级别的可扩展列表,它不适用于我
public class ChildSubChildExpandableListAdapter extends
BaseExpandableListAdapter{
Context context;
HashMap<String, List<String>> childdata;
private List<String> parentDataSource;
List<String> secondLevel;
private HashMap<String, List<String>> childDataSource;
public ChildSubChildExpandableListAdapter(Context context, List<String> Parent, List<String> secondLevel, HashMap<String, List<String>> data) {
this.context = context;
this.parentDataSource = Parent;
this.secondLevel = secondLevel;
this.childdata = data;
}
@Override
public int getGroupCount() {
return this.parentDataSource.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return 1;
}
@Override
public Object getGroup(int i) {
return i;
}
@Override
public Object getChild(int i, int i1) {
return i1;
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean b, View convertView, ViewGroup viewGroup) {
View view = convertView;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.parentlayout, null);
TextView text = (TextView) convertView.findViewById(R.id.parent_layout);
text.setText(this.parentDataSource.get(groupPosition));
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup group) {
final SecondLevelExpandableListView secondLevelELV = new SecondLevelExpandableListView(context);
String headers =secondLevel.get(groupPosition);
List<String> header=new ArrayList<>();
header.add(headers);
List<List<String>> childData = new ArrayList<>();
HashMap<String, List<String>> secondLevelData= (HashMap<String, List<String>>) childdata.get(groupPosition);
for(String key : secondLevelData.keySet())
{
childData.add(secondLevelData.get(key));
}
secondLevelELV.setAdapter(new ExpandableListAdapter(context, header,secondLevelData));
secondLevelELV.setGroupIndicator(null);
secondLevelELV.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
int previousGroup = -1;
@Override
public void onGroupExpand(int groupPosition) {
if(groupPosition != previousGroup)
secondLevelELV.collapseGroup(previousGroup);
previousGroup = groupPosition;
}
});
return secondLevelELV;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
}
这是第二级可扩展列表视图
public class SecondLevelExpandableListView extends ExpandableListView
{
public SecondLevelExpandableListView(Context context) {
super(context);
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//999999 is a size in pixels. ExpandableListView requires a maximum height in order to do measurement calculations.
heightMeasureSpec = MeasureSpec.makeMeasureSpec(999999, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
嗨朋友请帮我创建三级可扩展。如果我只使用ExpandableListAdapter,上面的代码可以工作。
在上面的代码中,我使用了childSubChildAdapter三级,然后它无法正常工作
我想在列表的每个元素中添加复选框,如果我选择一个孩子,也应该选择其父元素
这是我的Json
{
"Release": "16.1",
"details": [],
"children": [
{
"Release": "16.1R3",
"details": [
{
"Build Date": "",
"Deploy Date": "",
"Respin Date": "",
"Release Lead": "Jl",
"Engineering Lead": "LG",
"Test Lead": "Dl"
}
],
"children": [
{
"Release": "16.1R3-S5",
"details": [
{
"Build Date": "2017-08-17",
"Deploy Date": "2017-08-25",
"Respin Date": "",
"Release Lead": "Jk",
"Engineering Lead": "Ly",
"Test Lead": "FD"
}
]
}
]
}
请帮我解决这个问题。我是第一次做这种工作。
提前致谢
答案 0 :(得分:0)
我的建议是使用Recycler视图而不是Expandable list视图,因为在大数据的情况下,可扩展列表视图会产生问题,特别是在三级可扩展列表视图的情况下。
为每个列表级别创建一个模型类,其具有复选框单击的布尔值。
答案 1 :(得分:0)
你好三级可扩展列表视图你需要一个带有子视图的ExpandableListView,其中包含一个另外一个可扩展的ListView,它是customExpandableListView ,因为我们都知道我们不能在任何滚动视图中放置滚动对象,我已经在我的一个项目,
第一个适配器如下
public class AdminExpandableListAdapter extends BaseExpandableListAdapter {
private Context _context;
private List<Child> masterData;
private Activity activity;
private int i = 1;
static String masterId;
public AdminExpandableListAdapter(Context _context, List<Child> masterData, Activity activity) {
this._context = _context;
this.masterData = masterData;
this.activity = activity;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
//return this.masterData.get(groupPosition).getChildren().size();
return childPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public int getChildrenCount(int groupPosition) {
/* try {
return this.masterData.get(groupPosition).getChildren().size();
}catch (Exception e){
e.printStackTrace();
Toast.makeText(AdminExpandableListAdapter.this._context,"Record not found",Toast.LENGTH_LONG).show();
return 0;
}*/
return 1;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
List<Child_> dealerData = masterData.get(groupPosition).getChildren();
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.item_admin_child_dealer_, null);
}
LinearLayout dealerchild = (LinearLayout) convertView.findViewById(R.id.linear_layout_item_admin_child);
int width = 380;
CustExpListview SecondLevelexplv = new CustExpListview(activity, width);
SecondLevelexplv.setGroupIndicator(ResourcesCompat.getDrawable(activity.getResources(), R.drawable.group_indicator, null));
AdminDealerChildExpandableAdapter listAdapter = new AdminDealerChildExpandableAdapter(_context, dealerData, activity);
SecondLevelexplv.setAdapter(listAdapter);
return SecondLevelexplv;
}
@Override
public Object getGroup(int groupPosition) {
//return this.masterData.get(groupPosition);
return groupPosition;
}
@Override
public int getGroupCount() {
return this.masterData.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
String headerTitle = masterData.get(groupPosition).getName();
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.item_admin_group_master_, null);
}
TextView lblListheader = (TextView) convertView.findViewById(R.id.admin_master_group_text_view);
lblListheader.setText(headerTitle);
/* lblListheader.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AdminSelectMaster(groupPosition);
}
});*/
ImageView settingImageView = (ImageView) convertView.findViewById(R.id.admin_master_group_item_image_view);
settingImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
UnSelectChild(activity);
AdminSelectMaster(groupPosition);
PopupMenu popupMenu = new PopupMenu(activity, v);
popupMenu.inflate(R.menu.master_select_dealer_menu);
Object menuHelper;
Class[] argTypes;
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.add_account:
// new AddUserAccountDialog(activity, _context);
new CreateDealerDialogSelectMasterAdmin(activity);
break;
case R.id.view_account:
new ViewMasterAccountAdminDialog(activity);
break;
case R.id.change_password:
new ChangeMasterPasswordAdminDialog(activity);
break;
case R.id.free_chip_in_out:
new MasterFreeChipInOutAdminDailog(activity);
break;
case R.id.lock_user:
new LockMasterDialogAdmin(activity);
break;
case R.id.lock_betting:
new LockMasterBetDialogAdmin(activity);
break;
case R.id.close_acc:
new CloseMasterAccountDialogAdmin(activity);
break;
}
return false;
}
});
try {
Field fMenuHelper = PopupMenu.class.getDeclaredField("mPopup");
fMenuHelper.setAccessible(true);
menuHelper = fMenuHelper.get(popupMenu);
argTypes = new Class[]{boolean.class};
menuHelper.getClass().getDeclaredMethod("setForceShowIcon", argTypes).invoke(menuHelper, true);
} catch (Exception e) {
Log.w("LOG_W", "error forcing menu icons to show", e);
popupMenu.show();
}
popupMenu.show();
}
});
lblListheader.setText(headerTitle);
return convertView;
}
private void AdminSelectMaster(int position) {
final App editor = App.getInstance();
editor.setCurrentMasterId(masterData.get(position).getId());
editor.setCurrentMasterType(masterData.get(position).getUsetype());
editor.setCurrentMasterName(masterData.get(position).getName());
editor.setCurrentMasterMstrLock(masterData.get(position).getMstrlock());
editor.setCurrentMasterCommision(masterData.get(position).getCommission());
editor.setCurrentMasterLockbtng(masterData.get(position).getLgnusrlckbtng());
editor.setCurrentMasterCloseAc(masterData.get(position).getLgnusrCloseAc());
editor.setCurrentMasterMastrName(masterData.get(position).getMstrname());
editor.setCurrentMasterPartner(masterData.get(position).getPartner());
editor.setCurrentMasterMaxStake(masterData.get(position).getLgnUserMaxStake());
editor.setCurrentMasterMaxProfit(masterData.get(position).getLgnUserMaxProfit());
editor.setCurrentMasterMaxLoss(masterData.get(position).getLgnUserMaxLoss());
editor.setCurrentMasterSessionCommision(masterData.get(position).getSessionComm());
editor.setCurrentMasterOtherCommision(masterData.get(position).getOtherComm());
ViewMasterAccountAdminDialog.ViewPartnership(editor.getCurrentMasterId());
}
public static void UnSelectChild(Activity activity) {
final App editor = App.getInstance();
editor.setCurrentChildId(null);
editor.setCurrentChildType("null");
editor.setCurrentChildName(null);
editor.setCurrentChildMstrLock(null);
editor.setCurrentChildCommision(null);
editor.setCurrentChildLockbtng(null);
editor.setCurrentChildCloseAc(null);
editor.setCurrentChildMastrName(null);
editor.setCurrentChildPartner(null);
editor.setCurrentChildMaxStake(null);
editor.setCurrentChildMaxProfit(null);
editor.setCurrentChildMaxLoss(null);
editor.setCurrentParentId(null);
editor.setCurrentParentType("null");
editor.setCurrentParentName(null);
editor.setCurrentParentMstrLock(null);
editor.setCurrentParentCommision(null);
editor.setCurrentParentLockbtng(null);
editor.setCurrentParentCloseAc(null);
editor.setCurrentParentMastrName(null);
editor.setCurrentParentPartner(null);
editor.setCurrentParentrMaxStake(null);
editor.setCurrentParentMaxProfit(null);
editor.setCurrentParentMaxLoss(null);
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
第二个CustomExpandableListView
public class CustExpListview extends ExpandableListView {
int width;
public CustExpListview(Context context, int width) {
super(context);
this.width = width;
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
widthMeasureSpec = MeasureSpec.makeMeasureSpec(width,
MeasureSpec.EXACTLY);
heightMeasureSpec = MeasureSpec.makeMeasureSpec(900,
MeasureSpec.AT_MOST);
/*widthMeasureSpec = ViewGroup.LayoutParams.MATCH_PARENT;
heightMeasureSpec = ViewGroup.LayoutParams.WRAP_CONTENT;*/
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
第三个childView ExpandableListView适配器如下
public class AdminDealerChildExpandableAdapter extends BaseExpandableListAdapter {
Context _context;
Activity activity;
private List<Child_> dealerData;
public AdminDealerChildExpandableAdapter(Context _context, List<Child_> dealerData, Activity activity) {
this._context = _context;
this.dealerData = dealerData;
this.activity = activity;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
//return this.dealerData.get(groupPosition).getChildren().size();
return childPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public int getChildrenCount(int groupPosition) {
try {
return this.dealerData.get(groupPosition).getChildren().size();
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
final String childtext = dealerData.get(groupPosition).getChildren().get(childPosition).getName();
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_item_user_child, null);
}
TextView txtChild = (TextView) convertView.findViewById(R.id.lblListItem);
txtChild.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AdminUserSelect(groupPosition,childPosition);
}
});
ImageView settingImageView = (ImageView) convertView.findViewById(R.id.master_user_child_item_image_view);
settingImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(activity, v);
popupMenu.inflate(R.menu.dealer_select_user_menu);
Object menuHelper;
Class[] argTypes;
AdminUserSelect(groupPosition, childPosition);
//AdminUnSelectDealer(activity);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.add_account:
new AddUserAccountDialog(activity, _context);
break;
case R.id.view_account:
new ViewUserAccountAdminDialog(activity);
break;
case R.id.change_password:
new ChangePasswordUserDialog(activity, _context);
break;
case R.id.free_chip_in_out:
new UserFreeChipInOutDailog(activity, _context);
break;
case R.id.lock_user:
new LockUserDialog(activity, _context);
break;
case R.id.lock_betting:
new LockUserBetDialog(activity, _context);
break;
case R.id.close_acc:
new CloseUserAccountDialog(activity, _context);
break;
}
return false;
}
});
try {
Field fMenuHelper = PopupMenu.class.getDeclaredField("mPopup");
fMenuHelper.setAccessible(true);
menuHelper = fMenuHelper.get(popupMenu);
argTypes = new Class[]{boolean.class};
menuHelper.getClass().getDeclaredMethod("setForceShowIcon", argTypes).invoke(menuHelper, true);
} catch (Exception e) {
Log.w("LOG_W", "error forcing menu icons to show", e);
popupMenu.show();
}
popupMenu.show();
}
});
txtChild.setText(childtext);
return convertView;
}
private void AdminUnSelectDealer(Activity activity) {
final App editor = (App) activity.getApplicationContext();
editor.setCurrentParentId(null);
editor.setCurrentParentType("null");
editor.setCurrentParentName(null);
editor.setCurrentParentMstrLock(null);
editor.setCurrentParentCommision(null);
editor.setCurrentParentLockbtng(null);
editor.setCurrentParentCloseAc(null);
editor.setCurrentParentMastrName(null);
editor.setCurrentParentPartner(null);
editor.setCurrentParentrMaxStake(null);
editor.setCurrentParentMaxProfit(null);
editor.setCurrentParentMaxLoss(null);
}
private void AdminUserSelect(int groupPosition, int childPosition) {
AdminSelectDealer(groupPosition);
final App editor = (App) activity.getApplicationContext();
editor.setCurrentChildId(dealerData.get(groupPosition).getChildren().get(childPosition).getId());
editor.setCurrentChildType(dealerData.get(groupPosition).getChildren().get(childPosition).getUsetype());
editor.setCurrentChildName(dealerData.get(groupPosition).getChildren().get(childPosition).getName());
editor.setCurrentChildMstrLock(dealerData.get(groupPosition).getChildren().get(childPosition).getMstrlock());
editor.setCurrentChildCommision(dealerData.get(groupPosition).getChildren().get(childPosition).getCommission());
editor.setCurrentChildLockbtng(dealerData.get(groupPosition).getChildren().get(childPosition).getLgnusrlckbtng());
editor.setCurrentChildCloseAc(dealerData.get(groupPosition).getChildren().get(childPosition).getLgnusrCloseAc());
editor.setCurrentChildMastrName(dealerData.get(groupPosition).getChildren().get(childPosition).getMstrname());
editor.setCurrentChildPartner(dealerData.get(groupPosition).getChildren().get(childPosition).getPartner());
editor.setCurrentChildMaxStake(dealerData.get(groupPosition).getChildren().get(childPosition).getLgnUserMaxStake());
editor.setCurrentChildMaxProfit(dealerData.get(groupPosition).getChildren().get(childPosition).getLgnUserMaxProfit());
editor.setCurrentChildMaxLoss(dealerData.get(groupPosition).getChildren().get(childPosition).getLgnUserMaxLoss());
ViewUserAccountAdminDialog.ViewPartnership(editor.getCurrentChildId());
}
@Override
public Object getGroup(int groupPosition) {
return groupPosition;
//return this.dealerData.get(groupPosition);
}
@Override
public int getGroupCount() {
return this.dealerData.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
String headerTitle = dealerData.get(groupPosition).getName();
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_group_header, null);
}
TextView lblListheader = (TextView) convertView.findViewById(R.id.list_group_item);
ImageView settingImageView = (ImageView) convertView.findViewById(R.id.master_dealer_group_item_image_view);
settingImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
UnSelectChild(activity);
AdminSelectDealer(groupPosition);
PopupMenu popupMenu = new PopupMenu(activity, v);
popupMenu.inflate(R.menu.master_select_dealer_menu);
Object menuHelper;
Class[] argTypes;
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.add_account:
new AddUserAccountDialog(activity, _context);
break;
case R.id.view_account:
new ViewDealerAccountAdminDialog(activity);
break;
case R.id.change_password:
new ChangeDealerPasswordDialog(activity, _context);
break;
case R.id.free_chip_in_out:
new DealerFreeChipInOutDailog(activity, _context);
break;
case R.id.lock_user:
new LockDealerDialog(activity, _context);
break;
case R.id.lock_betting:
new LockDealerBetDialog(activity, _context);
break;
case R.id.close_acc:
new CloseDealerAccountDialog(activity, _context);
break;
}
return false;
}
});
try {
Field fMenuHelper = PopupMenu.class.getDeclaredField("mPopup");
fMenuHelper.setAccessible(true);
menuHelper = fMenuHelper.get(popupMenu);
argTypes = new Class[]{boolean.class};
menuHelper.getClass().getDeclaredMethod("setForceShowIcon", argTypes).invoke(menuHelper, true);
} catch (Exception e) {
Log.w("LOG_W", "error forcing menu icons to show", e);
popupMenu.show();
}
popupMenu.show();
}
});
lblListheader.setText(headerTitle);
return convertView;
}
private void AdminSelectDealer(int position) {
final App editor = (App) App.getInstance();
editor.setCurrentParentId(dealerData.get(position).getId());
editor.setCurrentParentType(dealerData.get(position).getUsetype());
editor.setCurrentParentName(dealerData.get(position).getName());
editor.setCurrentParentMstrLock(dealerData.get(position).getMstrlock());
editor.setCurrentParentCommision(dealerData.get(position).getCommission());
editor.setCurrentParentLockbtng(dealerData.get(position).getLgnusrlckbtng());
editor.setCurrentParentCloseAc(dealerData.get(position).getLgnusrCloseAc());
editor.setCurrentParentMastrName(dealerData.get(position).getMstrname());
editor.setCurrentParentPartner(dealerData.get(position).getPartner());
editor.setCurrentParentrMaxStake(dealerData.get(position).getLgnUserMaxStake());
editor.setCurrentParentMaxProfit(dealerData.get(position).getLgnUserMaxProfit());
editor.setCurrentParentMaxLoss(dealerData.get(position).getLgnUserMaxLoss());
editor.setCurrentParentSessionCommision(dealerData.get(position).getSessionComm());
editor.setCurrentParentOtherCommision(dealerData.get(position).getOtherComm());
/*editor.setCurrentParentAdminPrtner(dealerData.get(position).part());
editor.setCurrentParentMasterPrtner(dealerData.get(position).getLgnUserMaxLoss());
editor.setCurrentParentDealerPrtner(dealerData.get(position).getLgnUserMaxLoss());*/
ViewDealerAccountAdminDialog.ViewPartnership(editor.getCurrentParentId());
}
private void UnSelectChild(Activity activity) {
final App editor = (App) activity.getApplicationContext();
editor.setCurrentChildId(null);
editor.setCurrentChildType("null");
editor.setCurrentChildName(null);
editor.setCurrentChildMstrLock(null);
editor.setCurrentChildCommision(null);
editor.setCurrentChildLockbtng(null);
editor.setCurrentChildCloseAc(null);
editor.setCurrentChildMastrName(null);
editor.setCurrentChildPartner(null);
editor.setCurrentChildMaxStake(null);
editor.setCurrentChildMaxProfit(null);
editor.setCurrentChildMaxLoss(null);
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}