Android 更新标题ListView中的TextView

Android 更新标题ListView中的TextView,android,listview,getview,Android,Listview,Getview,我试图更新我的TextView当我的oninclick事件触发时,我有几个TextView,它们是在我的行模板中创建的,但问题是,当我试图设置这个TextView值时,它实际上被设置了,但另一个TextView也被设置了,我有同样的价值观,知道为什么要这样做,但不知道如何修复它 我的想法是: 在我的getRowView方法中(当我滚动列表时),我看到一个 不寻常的行为,一旦我给我的一个iTen设置了一些值,它 继续更改获取此值的文本视图。所以我想这里是 问题的核心 PS:我正在使用这个组件,

我试图更新我的
TextView
当我的
oninclick
事件触发时,我有几个TextView,它们是在我的行模板中创建的,但问题是,当我试图设置这个
TextView
值时,它实际上被设置了,但另一个TextView也被设置了,我有同样的价值观,知道为什么要这样做,但不知道如何修复它

我的想法是:

  • 在我的
    getRowView
    方法中(当我滚动列表时),我看到一个 不寻常的行为,一旦我给我的一个iTen设置了一些值,它 继续更改获取此值的文本视图。所以我想这里是 问题的核心
PS:我正在使用这个组件,如果你得到另一个框架的建议来做同样的事情,我将非常感激

PS2:下面是我的代码:

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

import br.com.soutsapp.souts.R;
import br.com.soutsapp.souts.model.Menu;
import br.com.soutsapp.souts.model.Product;
import br.com.soutsapp.souts.model.modelview.OrderItem;
import br.com.soutsapp.souts.userInterface.activity.SectionAdapter;
import br.com.soutsapp.souts.userInterface.adapter.HeaderListView;

public class MenuFragment extends Fragment {
private Context mContext;
private List<OrderItem> itens;

private Menu menu;
public MenuFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.fragment_menu, container, false);
    mContext = getContext();

    itens = new ArrayList<>();
    menu = new Menu();

    final String[] sec1 = {"aaaaaaaa","aaaaaaaa","aaaaaaaa","aaaaaaaa","aaaaaaaa","aaaaaaaa","aaaaaaaa"};
    final String[] sec2 = {"bbbbbbbb","bbbbbbbb","bbbbbbbb","bbbbbbbb","bbbbbbbb","bbbbbbbb","bbbbbbbb"};
    final String[] sec3 = {"cccccccc","cccccccc","cccccccc","cccccccc","cccccccc","cccccccc","cccccccc"};
    final String[] sec4 = {"dddddddd","dddddddd","dddddddd","dddddddd","dddddddd","dddddddd","dddddddd"};

    HeaderListView lv = (HeaderListView) v.findViewById(R.id.lv_menu_items);

    lv.setAdapter(new SectionAdapter() {

        @Override
        public int numberOfSections() {
            return menu.getMenuSessions().size();
        }

        @Override
        public int numberOfRows(int section) {
            return menu.getMenuSessions().get(section).size();
        }

        @Override
        public Object getRowItem(int section, int row) {
            return menu.getMenuSessions().get(section).get(row);
        }

        @Override
        public boolean hasSectionHeaderView(int section) {
            return true;
        }

        @Override
        public View getRowView(int section, int row, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = getActivity().getLayoutInflater().inflate(getResources().getLayout(R.layout.menu_item_row), null);
            }

            //Product product = (Product)getRowItem(section, row);
            //convertView.setId(product.getId());

            TextView tvMenuItemName = (TextView) convertView.findViewById(R.id.tv_menu_item_name);
            TextView tvMenuItemPrice = (TextView) convertView.findViewById(R.id.tv_price);

            String itemName = ((Product)getRowItem(section,row)).getName();
            tvMenuItemName.setText(itemName);

            String itemPrice = String.valueOf(((Product) getRowItem(section, row)).getPrice());
            tvMenuItemPrice.setText(itemPrice);

            final int mySection = section;
            final int myRow = row;

            final TextView tvQuantity = (TextView) convertView.findViewById(R.id.tv_quantity);
            tvQuantity.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Product product = (Product) getRowItem(mySection, myRow);

                    if (tvQuantity.getText().equals("1") && !tvQuantity.getText().equals("")){
                        tvQuantity.setText("");

                        OrderItem itenToRemove = null;
                        for(OrderItem item: itens){
                            if(item.getProductId() == product.getId()){
                                itenToRemove = item;
                                break;
                            }
                        }
                        itens.remove(itenToRemove);
                    }
                    else{

                        for(OrderItem item: itens){
                            if(item.getProductId() == product.getId()){
                                int quantity = item.getQuantity();
                                item.setQuantity(--quantity);
                                tvQuantity.setText(String.valueOf(item.getQuantity()));
                                break;
                            }
                        }
                    }
                }
            });


            return convertView;
        }

        @Override
        public int getSectionHeaderViewTypeCount() {
            return 1;
        }

        @Override
        public int getSectionHeaderItemViewType(int section) {
            return section % 1;
        }

        @Override
        public View getSectionHeaderView(int section, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = (TextView)  getActivity().getLayoutInflater().inflate(getResources().getLayout(android.R.layout.simple_list_item_1), null);
            }

            if (getSectionHeaderItemViewType(section) == 0) {
                ((TextView) convertView).setText("Header for section " + section);
            } else {
                ((TextView) convertView.findViewById(android.R.id.text1)).setText("Header for section " + section);
            }

            switch (section) {
                case 0:
                    convertView.setBackgroundColor(getResources().getColor(R.color.Blue_Jay));
                    break;
                case 1:
                    convertView.setBackgroundColor(getResources().getColor(R.color.Yellow));
                    break;
                case 2:
                    convertView.setBackgroundColor(getResources().getColor(R.color.Red_Wine));
                    break;
            }
            return convertView;
        }

        @Override
        public void onRowItemClick(AdapterView<?> parent, View view, int section, int row, long id) {
            super.onRowItemClick(parent, view, section, row, id);

            //Product p = (Product)view.getTag();

            TextView tvQuantity = (TextView) view.findViewById(R.id.tv_quantity);

            Product p = menu.getMenuSessions().get(section).get(row);
            //Product p = (Product) getRowItem(section, row);

            boolean exist = false;
            for(OrderItem item : itens){
                if(item.getProductId() == p.getId()){
                    int actualQuantity = item.getQuantity();
                    item.setQuantity(++actualQuantity);
                    tvQuantity.setText(String.valueOf(item.getQuantity()));
                    exist = true;
                }
            }
            if(!exist){
                itens.add(new OrderItem(p.getId(), 1));
                tvQuantity.setText("1");
            }
        }
    });

    return v;
}
导入android.content.Context;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.TextView;
导入java.util.ArrayList;
导入java.util.List;
进口br.com.soutsapp.souts.R;
导入br.com.soutsapp.souts.model.Menu;
导入br.com.soutsapp.souts.model.Product;
导入br.com.soutsapp.souts.model.modelview.OrderItem;
导入br.com.soutsapp.souts.userInterface.activity.SectionAdapter;
导入br.com.soutsapp.souts.userInterface.adapter.HeaderListView;
公共类MenuFragment扩展了片段{
私有上下文;
私有列表ITEN;
私人菜单;
公共菜单碎片(){
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图v=充气机。充气(R.layout.fragment_菜单,容器,错误);
mContext=getContext();
itens=新的ArrayList();
菜单=新菜单();
最后一个字符串[]sec1={“aaaaaa”,“aaaaaaaa”,“aaaaaaaa”,“aaaaaaaa”,“aaaaaaaa”,“aaaaaaaa”,“aaaaaaaa”,“aaaaaaaaaa”};
最后一个字符串[]sec2={“bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb”};
最后一个字符串[]sec3={“中交”、“中交”、“中交”、“中交”、“中交”、“中交”、“中交”、“中交”、“中交”};
最后一个字符串[]sec4={“ddddddd”、“ddddddd”、“ddddddd”、“ddddddd”、“ddddddd”、“dddddddd”、“dddddd”};
HeaderListView lv=(HeaderListView)v.findViewById(R.id.lv\u菜单项);
lv.setAdapter(新的SectionAdapter(){
@凌驾
公共int numberOfSections(){
return menu.getMenuSessions().size();
}
@凌驾
公共整数行数(整数部分){
return menu.getMenuSessions().get(section.size();
}
@凌驾
公共对象getRowItem(int部分,int行){
return menu.getMenuSessions().get(节).get(行);
}
@凌驾
公共布尔值hasSectionHeaderView(内部部分){
返回true;
}
@凌驾
公共视图getRowView(int段、int行、视图转换视图、视图组父级){
if(convertView==null){
convertView=getActivity().GetLayoutFlater().inflate(getResources().getLayout(R.layout.menu\u item\u row),null);
}
//产品产品=(产品)getRowItem(节,行);
//setId(product.getId());
TextView tvMenuItemName=(TextView)convertView.findViewById(R.id.tv\u菜单项\u名称);
TextView tVMenUI价格=(TextView)convertView.findViewById(R.id.tv\U价格);
字符串itemName=((产品)getRowItem(节,行)).getName();
tvMenuItemName.setText(itemName);
String itemPrice=String.valueOf(((产品)getRowItem(节,行)).getPrice();
tvMenuItemPrice.setText(项目价格);
最终int mySection=截面;
final int myRow=行;
最终文本视图tvQuantity=(文本视图)convertView.findViewById(R.id.tv_数量);
tvQuantity.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
产品产品=(产品)getRowItem(mySection,myRow);
if(tvQuantity.getText().equals(“1”)&&!tvQuantity.getText().equals(“”){
tvQuantity.setText(“”);
OrderItem itenToRemove=null;
用于(订单项:itens){
如果(item.getProductId()==product.getId()){
itenToRemove=项目;
打破
}
}
itens.remove(itentomove);
}
否则{
用于(订单项:itens){
如果(item.getProductId()==product.getId()){
int数量=item.getQuantity();
项目.设置数量(--数量);
tvQuantity.setText(String.valueOf(item.getQuantity());
打破
}
}
}
}
});
返回视图;
}
@凌驾
public int getSectionHeaderServiceTypeCount(){
返回1;
}
@凌驾
公共int getSectionHeaderItemViewType(int节){
返回节%1;
}
@凌驾
公共视图getSectionHeaderView(int节、视图转换视图、视图组父视图){
if(convertView==null){
convertView=(TextView)getActivity().GetLayoutFlater().inflate(getResources().getLayout(android.R.layout.simple_list_item_1),null);
}
如果(getSectionHeaderItemViewType(section)==0){
((文本视图)