رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

مشکل عجیب در کلیک expand list


پست های پیشنهاد شده

سلام به همه

آقا من یه مشکل عجیب دارم

از هر کی هم پرسیدم جوابی نداشتن

من یه expand list دارم که داینامیک پر میشه، هم group ها و هم child ها

تا اینجا درسته اما مشکل اینجاست که وقتی دستوری مینویسم که مثلا وقتی روی هر child کلیک شد رنگ بکگراندش عوض شه و من روی child ی با مشخصات 00 کلیک میکنم، child با مشخصات 22,40,50,80 هم رنگشون عوض میشه، یعنی انگار که کلیک خوردن

کلا رو هر کدوم کلیک میکنم child های دیگه از group های دیگه هم کلیک میخوردن

دوستان راه حلی دارید؟؟؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کدتون رو قرار بدبد تا بررسی کنیم.

این کد آداپتر هست

[align=left]

package adapter;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import model.Child;

import model.Group;

import parmis.parmication.fastbook.R;

import android.app.Activity;

import android.content.Context;

import android.graphics.Color;

import android.graphics.Typeface;

import android.view.LayoutInflater;

import android.view.MotionEvent;

import android.view.View;

import android.view.ViewGroup;

import android.view.animation.DecelerateInterpolator;

import android.widget.BaseAdapter;

import android.widget.BaseExpandableListAdapter;

import android.widget.ImageView;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.widget.RadioButton;

import android.widget.RadioGroup;

import android.widget.RatingBar;

import android.widget.TextView;

import android.widget.Toast;

public class Exam_List_Adapter extends BaseExpandableListAdapter {

private Context _context;

private List _listDataHeader; // header titles

// child data in format of header title, child title

private HashMap> _listDataChild;

private ArrayList groups;

public Exam_List_Adapter(Context context, ArrayList groups) {

this._context = context;

this.groups=groups;

// this._listDataHeader = listDataHeader;

// this._listDataChild = listChildData;

}

@Override

public Object getChild(int groupPosition, int childPosition) {

// return this._listDataChild.get(this._listDataHeader.get(groupPosition)).get(childPosititon);

ArrayList chList = groups.get(groupPosition).getAnswers();

return chList.get(childPosition);

}

@Override

public long getChildId(int groupPosition, int childPosition) {

return childPosition;

}

@Override

public View getChildView(int groupPosition, final int childPosition,

boolean isLastChild, View convertView, ViewGroup parent) {

Child child = (Child) getChild(groupPosition, childPosition);

// final String childText = (String) getChild(groupPosition, childPosition);

if (convertView == null)

{

LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = infalInflater.inflate(R.layout.list_item_answer, null);

}

TextView txtListChild = (TextView) convertView.findViewById(R.id.lblListItem);;

txtListChild.setText(child.getAnswer1());

// after, we've got view of child

return convertView;

}

@Override

public int getChildrenCount(int groupPosition) {

ArrayList chList = groups.get(groupPosition).getAnswers();

return chList.size();

}

@Override

public Object getGroup(int groupPosition) {

return groups.get(groupPosition);

}

@Override

public int getGroupCount() {

return groups.size();

}

@Override

public long getGroupId(int groupPosition) {

return groupPosition;

}

@Override

public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)

{

// String headerTitle = (String) getGroup(groupPosition);

Group group = (Group) getGroup(groupPosition);

if (convertView == null) {

LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = infalInflater.inflate(R.layout.list_group_question, null);

}

TextView lblListHeader = (TextView) convertView

.findViewById(R.id.lblListHeader);

lblListHeader.setText(group.getQuestion());

return convertView;

}

@Override

public boolean hasStableIds() {

return true;

}

@Override

public boolean isChildSelectable(int groupPosition, int childPosition) {

return true;

}

}[/align]

این کلاس مدل Child

[align=left]package model;

/**

* Created by Administrator on 5/9/2016.

*/

public class Child {

//

private String Answer1,Answer2,Answer3;

//

public String getAnswer1() {

return Answer1;

}

public void setAnswer1(String Answer) {

this.Answer1 = Answer;

}

}[/align]

کلاس مدل Group

[align=left]package model;

import java.util.ArrayList;

/**

* Created by Administrator on 5/9/2016.

*/

public class Group {

private String Qustion;

private ArrayList Answers;

public String getQuestion() {

return Qustion;

}

public void setQuestion(String question) {

this.Qustion = question;

}

public ArrayList getAnswers() {

return Answers;

}

public void setAnswers(ArrayList Answers) {

this.Answers = Answers;

}

}[/align]

اینم متد کلیم در MainActivity

[align=left]exam_listexpand.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

@Override

public boolean onChildClick(ExpandableListView parent, View view, int groupPosition, int childPosition, long l) {

int index = parent.getFlatListPosition(ExpandableListView.getPackedPositionForChild(groupPosition, childPosition));

parent.getChildAt(index).setBackgroundColor(Color.CYAN);

return false;

}

});[/align]

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...