android中的可扩展列表视图子项选择?
在可展开列表视图中,根据父级设置数据。在此父项具有子项选择中,选择集为每个子项选择的图像视图。但在此选择中设置其他父项和子项 下面是父值集的代码。android中的可扩展列表视图子项选择?,android,android-adapter,android-adapterview,Android,Android Adapter,Android Adapterview,在可展开列表视图中,根据父级设置数据。在此父项具有子项选择中,选择集为每个子项选择的图像视图。但在此选择中设置其他父项和子项 下面是父值集的代码。 @Override public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) { GroupViewHolder groupViewHolder; if(view==null){ gr
@Override
public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {
GroupViewHolder groupViewHolder;
if(view==null){
groupViewHolder=new GroupViewHolder();
view=((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.category_listview_group_item,null);
groupViewHolder.name=(TextView)view.findViewById(R.id.category_listview_item_name);
groupViewHolder.nameIcon=(ImageView)view.findViewById(R.id.category_listview_item_icon);
groupViewHolder.progressBar = (ProgressBar)view.findViewById(R.id.categoryImageProgressBarlist);
groupViewHolder.rigtharrow=(ImageButton)view.findViewById(R.id.category_listview_item_onclick);
view.setTag(groupViewHolder);
} else {
groupViewHolder=(GroupViewHolder)view.getTag();
}
groupViewHolder.nameIcon =itemImage(view, R.id.category_listview_item_icon, data.get(i).getImageUrl(), groupViewHolder.progressBar);
groupViewHolder.name.setText(data.get(i).getName());
return view;
}
下面是子项值集的代码
@Override
public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
final ChildViewHolder childViewHolder;
String[] spinnerCount = {"1","2","3","4","5"};
if(view==null) {
childViewHolder = new ChildViewHolder();
view = ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.category_listview_child_item,null);
childViewHolder.childName = (TextView)view.findViewById(R.id.listview_child_item_name);
childViewHolder.childNamePrice = (TextView)view.findViewById(R.id.listview_child_item_price);
childViewHolder.childNameIcon = (ImageView)view.findViewById(R.id.listview_child_item_icon);
childViewHolder.spinner = (Spinner)view.findViewById(R.id.spinner);
view.setTag(childViewHolder);
}
else {
childViewHolder=(ChildViewHolder)view.getTag();
}
childViewHolder.childNameIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!childViewHolder.childNameIcon.isSelected()) {
childViewHolder.childNameIcon.setBackgroundResource(R.mipmap.yellow_circle_list_item);
childViewHolder.childNameIcon.setSelected(true);
// childViewHolder.childNameIcon.setTag(R.mipmap.yellow_circle_list_item);
String quantity = childViewHolder.spinner.getSelectedItem().toString();
Products product = data.get(i).getProductsList().get(i1);
product.setQuantity(quantity);
dataHandler.addTempproducts(product);
} else {
childViewHolder.childNameIcon.setBackgroundResource(R.mipmap.black_circle_list_item);
childViewHolder.childNameIcon.setSelected(false);
// childViewHolder.childNameIcon.setTag(R.mipmap.black_circle_list_item);
dataHandler.removeTempProducts(data.get(i).getProductsList().get(i1));
Products product = data.get(i).getProductsList().get(i1);
product.setQuantity("1");
}
}
});
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,android.R.layout.simple_spinner_item,spinnerCount);
childViewHolder.spinner.setAdapter(adapter);
childViewHolder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String spinnerCount = childViewHolder.spinner.getSelectedItem().toString();
Products product = data.get(i).getProductsList().get(i1);
ArrayList<Products> productList = new ArrayList<Products>();
productList = dataHandler.getTempproducts();
if (childViewHolder.childNameIcon.isSelected()) {
for (int k = 0; k < productList.size(); k++) {
if (data.get(i).getProductsList().get(i1).getId() == productList.get(k).getId()) {
productList.get(k).setQuantity(spinnerCount);
}
}
} else {
product.setQuantity(spinnerCount);
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
childViewHolder.childName.setText(data.get(i).getProductsList().get(i1).getName());
if(data.get(i).getProductsList().get(i1).getPrice().isEmpty()) {
childViewHolder.childNamePrice.setText(data.get(i).getProductsList().get(i1).getPrice());
} else {
childViewHolder.childNamePrice.setText(data.get(i).getProductsList().get(i1).getPrice()+"/-");
}
return view;
}
@覆盖
公共视图getChildView(最终整数i、最终整数i1、布尔b、视图视图、视图组视图组){
最终ChildViewHolder ChildViewHolder;
字符串[]喷丝头计数={“1”、“2”、“3”、“4”、“5”};
如果(视图==null){
childViewHolder=新的childViewHolder();
视图=((LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u SERVICE)).inflate(R.LAYOUT.category\u listview\u child\u项,空);
childViewHolder.childName=(TextView)view.findViewById(R.id.listview\u child\u item\u name);
childViewHolder.childNamePrice=(TextView)view.findViewById(R.id.listview\u child\u item\u price);
childViewHolder.childNameIcon=(ImageView)view.findViewById(R.id.listview\u child\u item\u icon);
childViewHolder.spinner=(spinner)view.findViewById(R.id.spinner);
view.setTag(childViewHolder);
}
否则{
childViewHolder=(childViewHolder)view.getTag();
}
childViewHolder.childNameIcon.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(!childViewHolder.childNameIcon.isSelected()){
childViewHolder.childNameIcon.setBackgroundResource(R.mipmap.yellow\u circle\u list\u项);
childViewHolder.childNameIcon.setSelected(true);
//childViewHolder.childNameIcon.setTag(R.mipmap.yellow\u circle\u list\u项);
字符串数量=childViewHolder.spinner.getSelectedItem().toString();
Products product=data.get(i).getProductsList().get(i1);
产品设置数量(数量);
dataHandler.addTempproducts(产品);
}否则{
childViewHolder.childNameIcon.setBackgroundResource(R.mipmap.black\u circle\u list\u项);
childViewHolder.childNameIcon.setSelected(false);
//childViewHolder.childNameIcon.setTag(R.mipmap.black\u circle\u list\u项);
removeTempProducts(data.get(i).getProductsList().get(i1));
Products product=data.get(i).getProductsList().get(i1);
产品设定数量(“1”);
}
}
});
ArrayAdapter=新的ArrayAdapter(上下文,android.R.layout.simple\u spinner\u项,spinnerCount);
childViewHolder.spinner.setAdapter(适配器);
childViewHolder.spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、内部arg2、长arg3){
字符串spinnerCount=childViewHolder.spinner.getSelectedItem().toString();
Products product=data.get(i).getProductsList().get(i1);
ArrayList productList=新的ArrayList();
productList=dataHandler.getTempproducts();
if(childViewHolder.childNameIcon.isSelected()){
对于(int k=0;k
请帮助我,我是这里的结构……请更清楚地表达您的问题,并显示您的代码。
在可展开列表视图中,根据父级设置数据。在此父项具有子项选择中,选择集为每个子项选择的图像视图。但在此选择中设置其他父项和子项
。如前所述:重新措辞你的文本。我们不明白你想说什么。childViewHolder.childNameIcon.setOnClickListener图像视图设置在childNameIcon中,单击图像时将背景色设置为黄色,再次单击同一图像视图时将背景色设置为棕色,而我第一次单击图像时将背景色更改为黄色,但这里黄色也被设置到另一个父项最后一个子项中,这是我的问题我选择父组中的子项,该选择也被设置到另一个父项子项中。这就是问题所在。