Android中如何从适配器向布局分配数据

Android中如何从适配器向布局分配数据,android,android-layout,Android,Android Layout,当我试图从适配器在布局中显示一些数据时,我遇到了一个问题 我有一个类,其中有一些数据和一个listView,但是当我试图从listView适配器更改布局信息时,数据不会显示在屏幕上,我只看到默认布局,而看不到真实的数据 我的适配器中有: holderExpanded = new SwipeExpandedHolder(); holderExpanded.number = (TextView) firstLayout.findViewById(R.id.tv_NumberExpanded); ho

当我试图从适配器在布局中显示一些数据时,我遇到了一个问题

我有一个类,其中有一些数据和一个listView,但是当我试图从listView适配器更改布局信息时,数据不会显示在屏幕上,我只看到默认布局,而看不到真实的数据

我的适配器中有:

holderExpanded = new SwipeExpandedHolder();
holderExpanded.number = (TextView) firstLayout.findViewById(R.id.tv_NumberExpanded);
holderExpanded.businessName = (TextView) firstLayout.findViewById(R.id.tv_BusinessNameExpanded);
holderExpanded.number.setText(arrayBusinesses.get(0).getNumber());
holderExpanded.businessName.setText(arrayBusinesses.get(0).getBusinessName());
我们班的电话是:

wipeLayoutListAdapter = new SwipeLayoutListAdapter(this, R.layout.show_multi_ticket_first_item, R.layout.show_multi_ticket_item,  listView, array);
您看,我传递了2个布局,因为我有一个带有数据的线性布局,第二个是ListView的项布局

我调试应用程序,我可以在“表达式”中看到正确的数据,但在布局中看不到

编辑:我的适配器

    public class SwipeLayoutListAdapter extends BaseSwipeAdapter implements OnTouchListener, OnItemClickListener
{
    private Context             context;
    private SwipeExpandedHolder holderExpanded;
    private SwipeListViewHolder holderListView;
    private ListView            listView;
    private int                 firstLayout, layout;
    private LayoutInflater      inflater;
    private ArrayList<MultiTicketBusiness> arrayBusinesses;

....

@Override
    public View generateView(int position, ViewGroup parent) {
        View v;
        SwipeLayout swipeLayout;
        if(arrayBusinesses.get(position).isEmpty()){
            v = inflater.inflate(R.layout.show_multi_ticket_empty_item, null);
            //swipeLayout = (SwipeLayout)v.findViewById(getSwipeLayoutResourceId(position));
        } else {
            v = inflater.inflate(layout, null);
            swipeLayout = (SwipeLayout)v.findViewById(getSwipeLayoutResourceId(position));
            swipeLayout.addSwipeListener(new SimpleSwipeListener() {
                @Override
                public void onOpen(SwipeLayout layout) {
                    YoYo.with(Techniques.Tada).duration(500).delay(100).playOn(layout.findViewById(R.id.trash));
                }
            });
        }

return v;
}

@Override
    public void fillValues(final int position, View convertView) {

        if(arrayBusinesses.get(position).isEmpty()){
            convertView = inflater.inflate(R.layout.show_multi_ticket_empty_item, null);
            initializeListViewHolder(convertView, position, 0);

        } else {
            //Hide the first element in the list
            //if(arrayBusinesses.get(position).isHide()){
            if(position == 0){
                hideItem(convertView, true);

            } else {
                View firstView = inflater.inflate(firstLayout, null);
                hideItem(convertView, false);
                initializeListViewHolder(convertView, position, 1);
                initializeExpandedHolder(convertView, firstView);
            }
        }
    }

public void initializeExpandedHolder(View convertView, View firstLayout){

        firstLayout = inflater.inflate(R.layout.show_multi_ticket_first_item, null);

        holderExpanded = new SwipeExpandedHolder();
        holderExpanded.number_       = (TextView)    firstLayout.findViewById(R.id.tv_NumberExpanded);
        holderExpanded.businessName_  = (TextView)   firstLayout.findViewById(R.id.tv_BusinessNameExpanded);
        holderExpanded.queueName_    = (TextView)    firstLayout.findViewById(R.id.tv_QueueNameExpanded);
        holderExpanded.peopleInFront_ = (TextView)   firstLayout.findViewById(R.id.tv_PeopleInFrontExpanded);
        holderExpanded.estimateTime_     = (TextView)    firstLayout.findViewById(R.id.tv_EstimateTimeExpanded);
        holderExpanded.removeTurn    = (ImageButton) firstLayout.findViewById(R.id.ib_TrashExpanded);

        holderExpanded.number_.setText(arrayBusinesses.get(0).getNumber());
        holderExpanded.businessName_.setText(arrayBusinesses.get(0).getBusinessName());
        holderExpanded.queueName_.setText(arrayBusinesses.get(0).getQueueName());
        holderExpanded.peopleInFront_.setText(arrayBusinesses.get(0).getPeopleInFront());
        holderExpanded.estimateTime_.setText(arrayBusinesses.get(0).getEstimateTime());

    }

    public void initializeListViewHolder(View convertView, final int position, int opc){
        holderListView = new SwipeListViewHolder();

        if(opc == 0){   //When the row doesn't have turn assigned yet.
            holderListView.layoutAddTurn = (LinearLayout)convertView.findViewById(R.id.layout_AddTurn);
        } else {        //The row show a Turn
            holderListView.number        = (TextView)    convertView.findViewById(R.id.tv_NumberItem);
            holderListView.businessName  = (TextView)    convertView.findViewById(R.id.tv_BusinessNameItem);
            holderListView.queueName     = (TextView)    convertView.findViewById(R.id.tv_QueueNameItem);
            holderListView.peopleInFront = (TextView)    convertView.findViewById(R.id.tv_PeopleInFrontItem);
            holderListView.estimateTime  = (TextView)    convertView.findViewById(R.id.tv_EstimateTimeItem);
            holderListView.removeTurn    = (ImageButton) convertView.findViewById(R.id.ib_TrashItem);

            holderListView.number.setText(arrayBusinesses.get(position).getNumber());
            holderListView.businessName.setText(arrayBusinesses.get(position).getBusinessName());
            holderListView.queueName.setText(arrayBusinesses.get(position).getQueueName());
            holderListView.peopleInFront.setText(arrayBusinesses.get(position).getPeopleInFront());
            holderListView.estimateTime.setText(arrayBusinesses.get(position).getEstimateTime());

            //Remove turn of the item clicked
            holderListView.removeTurn.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    ////Open the remove layout when click on the imageButton
                    ((SwipeLayout)(listView.getChildAt(position - listView.getFirstVisiblePosition()))).open(true);
                }
            });
        }
        convertView.setTag(holderListView);
    }
公共类SwipeLayOutlineStatAdapter扩展了BaseSwipeAdapter实现了OnTouchListener、OnItemClickListener
{
私人语境;
私人SwipeExpandedHolder holderExpanded;
专用SwipeListViewHolder-holderListView;
私有列表视图列表视图;
私有布局,布局;
私人充气机;
私人阵列列表阵列业务;
....
@凌驾
公共视图generateView(int位置,视图组父级){
观点五;
泳道布置泳道布置;
if(arrayBusinesses.get(position.isEmpty()){
v=充气机。充气(R.layout.show\u multi\u ticket\u empty\u item,null);
//swipeLayout=(swipeLayout)v.findViewById(getSwipeLayoutResourceId(position));
}否则{
v=充气机。充气(布局,空);
swipeLayout=(swipeLayout)v.findViewById(getSwipeLayoutResourceId(position));
addSwipeListener(新的SimpleSwipeListener()){
@凌驾
公共空间开放(SwipeLayout布局){
YoYo.with(technologies.Tada).持续时间(500).延迟(100).播放(layout.findViewById(R.id.trash));
}
});
}
返回v;
}
@凌驾
公共无效填充值(最终整型位置,视图转换视图){
if(arrayBusinesses.get(position.isEmpty()){
convertView=充气机。充气(R.layout.show\u multi\u ticket\u empty\u item,null);
初始化ListViewHolder(convertView,位置,0);
}否则{
//隐藏列表中的第一个元素
//if(arrayBusinesses.get(position.isHide()){
如果(位置==0){
hideItem(convertView,true);
}否则{
View firstView=充气机。充气(firstLayout,null);
hideItem(convertView,false);
初始化ListViewHolder(转换视图,位置,1);
初始化ExpandedHolder(convertView、firstView);
}
}
}
public void initializeExpandedHolder(视图转换视图、视图第一布局){
firstLayout=充气机。充气(R.layout.show\u multi\u ticket\u first\u item,null);
holderExpanded=新的SwipeExpandedHolder();
holderExpanded.number=(TextView)firstLayout.findViewById(R.id.tv_number扩展);
holderExpanded.businessName=(TextView)firstLayout.findviewbyd(R.id.tv_businessName扩展);
holderExpanded.queueName=(TextView)firstLayout.findViewById(R.id.tv_QueueNameExpanded);
holderExpanded.peopleInFront=(TextView)firstLayout.findviewbyd(R.id.tv_peopleInFront扩展);
holderExpanded.estimateTime=(TextView)firstLayout.findViewById(R.id.tv_EstimateTimeExpanded);
holderExpanded.removeTurn=(ImageButton)firstLayout.findViewById(R.id.ib_TrashExpanded);
holderExpanded.number_uz.setText(ArrayBusinesss.get(0.getNumber());
holderExpanded.businessName_u2;uu2;.setText(arrayBusinesses.get(0.getBusinessName());
holderExpanded.queueName_uuz.setText(ArrayBusinesss.get(0.getQueueName());
holderExpanded.PeopleInfont_uu2;.setText(ArrayBusiness.get(0.GetPeopleInfont());
holderExpanded.estimateTime_uu2;.setText(ArrayBusinesss.get(0.getEstimateTime());
}
public void initializeListViewHolder(视图转换视图、最终整数位置、整数opc){
holderListView=新的SwipeListViewHolder();
如果(opc==0){//当该行尚未指定回合时。
holderListView.layoutAddTurn=(LinearLayout)convertView.findViewById(R.id.layout\u AddTurn);
}否则{//该行显示一个转折点
holderListView.number=(TextView)convertView.findViewById(R.id.tv_NumberItem);
holderListView.businessName=(TextView)convertView.findViewById(R.id.tv\u businessName项);
holderListView.queueName=(TextView)convertView.findViewById(R.id.tv\u QueueNameItem);
holderListView.PeopleInfo=(TextView)convertView.findViewById(R.id.tv\u PeopleInfo项目);
holderListView.estimateTime=(TextView)convertView.findViewById(R.id.tv\u EstimateTimeItem);
holderListView.removeTurn=(ImageButton)convertView.findViewById(R.id.ib_TrashItem);
holderListView.number.setText(ArrayBusinesss.get(position.getNumber());
holderListView.businessName.setText(arrayBusinesses.get(position.getBusinessName());
holderListView.queueName.setText(ArrayBusinesss.get(position.getQueueName());
holderListView.PeopleInFont.setText(ArrayBusinesss.get(position.GetPeopleInFont());
holderListView.estimateTime.setText(ArrayBusiness.get(position.getEstimateTime());
//删除已单击项目的回合
holderListView.removeTurn.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
////单击imageButton时打开remove布局
((SwipeLayout)(listView.getChildAt(position-listView.getFirstVisiblePosition())).open(true);
}
});
}
setTag(holderListView);
View rootView = ((Activity)context).getWindow().getDecorView().findViewById(android.R.id.content);
TextView businessName  = (TextView)    rootView.findViewById(R.id.tv_BusinessNameExpanded);
TextView queueName     = (TextView)    rootView.findViewById(R.id.tv_QueueNameExpanded);
TextView number        = (TextView)    rootView.findViewById(R.id.tv_NumberExpanded);
TextView peopleInFront = (TextView)    rootView.findViewById(R.id.tv_PeopleInFrontExpanded);
TextView estimateTime  = (TextView)    rootView.findViewById(R.id.tv_EstimateTimeExpanded);
ImageButton removeTurn = (ImageButton) rootView.findViewById(R.id.ib_TrashExpanded);