第一个记录内容出现,其他记录不出现,直到我滚动列表,所以如果这个列表有3个记录,这意味着我不能滚动,所以第一个记录内容只出现
reocrd XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffffff">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Basket ID: "
android:layout_alignParentTop="true"
android:id="@+id/basketIDt"
android:padding="10dp"
android:textSize="20dp"
android:textColor="@color/abc_input_method_navigation_guard"
android:paddingTop="30dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text"
android:layout_alignParentTop="true"
android:id="@+id/basketID"
android:layout_toRightOf="@+id/basketIDt"
android:padding="10dp"
android:textSize="20dp"
android:textColor="@color/abc_input_method_navigation_guard"
android:paddingTop="30dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="text"
android:id="@+id/description"
android:layout_below="@+id/basketID"
android:textSize="15dp"
android:layout_centerHorizontal="true"/>
listview活动
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="@color/abc_search_url_text_normal"
tools:context="com.example.pc_orbit.myapplication.Employee.BasketList">
<ListView
android:layout_width="match_parent"
android:layout_height="400dp"
android:id="@+id/lv">
</ListView>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Scan QRCode"
android:background="@color/button_material_dark"
android:id="@+id/scan"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:textColor="#fffffb6b" />
ListAdapter
public class BasketListAdapter extends ArrayAdapter<BasketRecord> {
LayoutInflater mInflater;
Context context;
TextView basketID;
TextView description;
String latitude, longitude;
String citizenEmail;
String basketIDString ,descriptionString;
private List<BasketRecord> items = new ArrayList<BasketRecord>();
public BasketListAdapter(Context context, int resource, List<BasketRecord> items) {
super(context, resource, items);
this.context = context;
this.items= items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (null == convertView) {
RelativeLayout view = (RelativeLayout) RelativeLayout.inflate(this.context,
R.layout.basketsrecord, null);
Log.d("SeenDroid", String.format("Get view %d", position));
TextView id = new TextView(view.getContext());
description= new TextView(view.getContext());
latitude = this.items.get(position).getLatitude();
longitude = this.items.get(position).getLongitude();
citizenEmail= this.items.get(position).getCitizenEmail();
basketIDString =this.items.get(position).getBasketID();
descriptionString=this.items.get(position).getDescription();
view.addView(id);
view.addView(description);
return view;
} else {
RelativeLayout view = (RelativeLayout) convertView;
basketID = (TextView) view.getChildAt(1);
description= (TextView) view.getChildAt(2);
basketID.setText(this.items.get(position).getBasketID());
description.setText(this.items.get(position).getDescription());
latitude = this.items.get(position).getLatitude();
longitude = this.items.get(position).getLongitude();
citizenEmail= this.items.get(position).getCitizenEmail();
basketIDString = this.items.get(position).getBasketID();
descriptionString=this.items.get(position).getDescription();
return convertView;
}
}
}
答案 0 :(得分:0)
转换视图为空时,您没有设置数据。这将是在前几个通道中。您只能在else条件下设置它。一个快速解决方法是将转换视图设置为您正在创建的视图,而不是在<?php
session_start();
$_SESSION["my_data"] = $_POST['action']; // STORE VALUE IN VARIABLE.
echo "data received = " . $_POST['action']; // RETURN VALUE TO CONFIRM.
?>
的末尾返回它,然后摆脱if
(不是它中的什么)并保持剩下的代码。
它看起来像这样
else
请注意,这只是一个快速修复。您应该清理它以使更多可读/减少代码行
答案 1 :(得分:0)
A会建议您使用BaseAdapter而不是ArrayAdapter,一些方法可以帮助计算项目并获得id dinamically;
使用'持有人'
class viewHolderItem{
TextView id;
TextView description;
}
public class itemAdapter extends BaseAdapter{
Activity activity;
ArrayList<Item> listItems;
public itemAdapter(Activity activity,ArrayList<Item> listItems){
this.activity=activity;
this.listItems=listItems;
}
@Override
public int getCount() {
return listItems.size();
}
@Override
public Object getItem(int position) {
return listItems.get(position);
}
@Override
public long getItemId(int position) {
//it´s recomended to use an identifiyer for each item on list
//
//return listItems.get(position).getItemId();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
final viewHolderItem viewhold;
if(vi == null|| !(vi.getTag() instanceof viewHolderItem)) {
LayoutInflater inflater = (LayoutInflater) actividad.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
vi = inflater.inflate(R.layout.basketsrecord,null);
viewhold=new viewHolderItem();
viewhold.id=(TextView) vi.findViewById(R.id.basketID);
viewhold.description=(TextView)vi.findViewById(R.id.description);
//all other view elements of your xml
//...
}
else{
viewhold = (viewHolderItem)vi.getTag();
}
final Item item = listItems.get(position);
viewhold.id.setText(item.getBasketID());
viewhold.description.setText(item.getDescription);
//all other attributes of your object
//..
return (vi);
}
}