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