java数组适配器getview使用SOAP for Android仅显示最后一个值
我是安卓新手,我正在使用array adapter实现自定义listview,在我的arraylist中,我有10个不同的值,但当我将此值设置为listview时,它只显示最后一个视图。我很困惑,请澄清我的疑问
这是我的阵列适配器
package com.example.pfdv2;
import 安卓.app.Activity;
import 安卓.content.Context;
import 安卓.util.Log;
import 安卓.view.LayoutInflater;
import 安卓.view.View;
import 安卓.view.ViewGroup;
import 安卓.widget.ArrayAdapter;
import 安卓.widget.ImageView;
import 安卓.widget.TextView;
public class ProductAdapter extends ArrayAdapter<Product> {
Context context;
int layoutResourceId;
Product data[] = null;
private static final String TAG = "CustomAdapter";
private static int convertViewCounter = 0;
public ProductAdapter(Context context, int layoutResourceId,Product[] data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ProductHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ProductHolder();
holder.txtvCode = (TextView)row.findViewById(R.id.txtvCode);
holder.txtvBrand = (TextView)row.findViewById(R.id.txtvBrand);
holder.txtvQuantity = (TextView)row.findViewById(R.id.txtvQuantity);
holder.txtvName = (TextView)row.findViewById(R.id.txtvName);
holder.txtvPriceC = (TextView)row.findViewById(R.id.txtvPriceC);
holder.txtvPriceC2 = (TextView)row.findViewById(R.id.txtvPriceC2);
holder.txtvPointsC = (TextView)row.findViewById(R.id.txtvPointsC);
// holder.txtvPointsCC = (TextView)row.findViewById(R.id.txtvPointsCC);
holder.txtvPriceU = (TextView)row.findViewById(R.id.txtvPriceU);
holder.txtvPriceU2 = (TextView)row.findViewById(R.id.txtvPriceU2);
holder.txtvPointsU = (TextView)row.findViewById(R.id.txtvPointsU);
// holder.txtvPointsUU = (TextView)row.findViewById(R.id.txtvPointsUU);
row.setTag(holder);
}
else
{
holder = (ProductHolder)row.getTag();
}
Product product = data[position];
holder.txtvCode.setText(Product.getProductID());
holder.txtvBrand.setText(Product.getProductType());
holder.txtvQuantity.setText(Product.BrandID());
holder.txtvName.setText(Product.getProductName());
double j = Product.getCartonPrice();
String jresult = new Double(j).toString();
holder.txtvPriceC.setText(jresult);
double k = Product.getCartonPoints();
String kresult = new Double(k).toString();
holder.txtvPriceC2.setText(kresult);
double l = Product.getCTNAvail();
String lresult = new Double(l).toString();
holder.txtvPointsC.setText(lresult);
// holder.txtvPointsCC.setText(product.get());
double m = Product.getUnitPrice();
String mresult = new Double(m).toString();
holder.txtvPriceU.setText(mresult);
double n = Product.getUnitPoints();
String nresult = new Double(n).toString();
holder.txtvPriceU2.setText(nresult);
double o = Product.getUnitAvail();
String oresult = new Double(o).toString();
holder.txtvPointsU.setText(oresult);
// holder.txtvPointsUU.setText(product.getUnitAvail());
return row;
}
static class ProductHolder
{
ImageView imgIcon;
TextView txtvCode,txtvBrand,txtvQuantity,txtvName,txtvPriceC,txtvPriceC2,txtvPointsC,
txtvPointsCC,txtvPriceU,txtvPriceU2,txtvPointsU,txtvPointsUU;
}
}
以下是我如何从我的活动中解脱出来
ackage com.example.pfdv2;
import java.util.ArrayList;
import java.util.List;
import org.ksoap2.serialization.SoapObject;
import com.example.pfdv2.ProductAdapter.ProductHolder;
import 安卓.R.array;
import 安卓.os.Bundle;
import 安卓.view.LayoutInflater;
import 安卓.view.Menu;
import 安卓.view.MenuItem;
import 安卓.view.View;
import 安卓.view.ViewGroup;
import 安卓.widget.ArrayAdapter;
import 安卓.widget.Button;
import 安卓.widget.ListView;
import 安卓.widget.TableLayout;
import 安卓.widget.TextView;
import 安卓.widget.Toast;
import 安卓.app.ActionBar;
import 安卓.app.ListActivity;
import 安卓.content.Context;
import 安卓.content.Intent;
import 安卓.graphics.Color;
import 安卓.graphics.drawable.ColorDrawable;
public class Page_ListRowP extends ListActivity {
private static final String ProductAdapter = null;
private TextView text;
private TextView textVitems,txtProductName,txtBrandID,txtProductID,txtProductType,txtCartonP,txtCPoints, txtUAvail, txtUPrice, txtCTNA, txtUPoints;
private TextView quantity,statusTV1;
Button btn;
private List<String> listValues;
String name;
int t=WsSearch.total;
Boolean SearchStatus = WsSearch.SearchStatus;
ListView lstClientes = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(R.string.Search);
setContentView(R.layout.page_list);
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("lightgray"));
getActionBar().setBackgroundDrawable(colorDrawable);
text = (TextView) findViewById(R.id.mainText);
Product product_data[] = new Product[]
{
new Product()
};
ProductAdapter adapter = new ProductAdapter(this,
R.layout.row_products, product_data);
setListAdapter(adapter);
}
它显示数据,但仅显示最后一部分。如何显示所有值
谢谢
# 1 楼答案
看起来您的product_数据数组只有一项。它将只显示一个数据作为listitem。你在努力实现什么