有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    看起来您的product_数据数组只有一项。它将只显示一个数据作为listitem。你在努力实现什么