我正在制作一个包含产品的清单。在该列表的每一行中,必须有一个按钮来将产品添加到购物清单。但是有些东西不起作用,buttonLayout.addView
我整天都在坚持这个。我希望有一个人可以帮助我。
这是数组列表的代码
protected void onPostExecute(Void v) {
// ambil data dari Json database
try {
JSONArray Jarray = new JSONArray(result);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(DisplayProductList.this, R.layout.list_item);
/*String productname = null;
String productprice = null; */
RelativeLayout buttonLayout = (RelativeLayout) findViewById(R.id.listItem);
HashMap<String,String> map = new HashMap<String,String>();
for(int i=0;i<Jarray.length();i++)
{
JSONObject Jasonobject = null;
Jasonobject = Jarray.getJSONObject(i);
map.put("productname" + Integer.toString(i),Jasonobject.getString("ProductName"));
map.put("productprice" + Integer.toString(i),Jasonobject.getString("ProductPrice"));
Log.i("log_tag","Mapsize" + map.size());
Log.i("log_tag","map productname" + map.get("productname" + Integer.toString(i)));
Log.i("log_tag","map productprice" + map.get("productprice" + Integer.toString(i)));
final String productname = map.get("productname" + Integer.toString(i));
final String productprice = map.get("productprice" + Integer.toString(i));
Log.i("log_tag","String productname = " + productname);
ImageButton addItem = new ImageButton(DisplayProductList.this);
RelativeLayout.LayoutParams lpFirst = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
addItem.setImageResource(R.drawable.content_new);
addItem.setId(i);
Log.i("log_tag","buttonLayout.addView(addItem);");
buttonLayout.addView(addItem,i, lpFirst);
addItem.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
orderManager.addItem(1, productname, productprice, 3);
}
});
adapter.add(productname);
}
ListView listView = (ListView) findViewById(R.id.listViewProduct);
listView.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id )
{
Log.i("log_tag",view + Integer.toString(position) + Long.toString(id));
Log.i("log_tag", Integer.toString(view.getId()));
};
});
listView.setAdapter(adapter);
这是我尚未创建按钮的 XML,因为该按钮是在脚本中制作的(如果我错了,请告诉我)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listItem"
android:layout_width="match_parent"
android:layout_height="50dip"
android:paddingRight="40dip"
>
<TextView
android:id="@+id/productName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:layout_centerVertical="true"
android:paddingLeft="40dip" />
<TextView
android:id="@+id/productPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:layout_centerVertical="true"
android:paddingLeft="40dip" />
<EditText
android:id="@+id/productValue"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_marginRight="60dip"
android:hint="@string/value"
android:singleLine="true"
android:inputType="number"
android:maxLength="2"
/>
</RelativeLayout>
欢迎对脚本提出任何其他意见。我还是一个初学者,所以有很多东西要学。
我忘了提到错误。我得到一个:解析数据时出错 java.lang.NullPointerException
这是我的日志:
09-25 12:38:22.850: E/log_tag(4992): Error parsing data java.lang.NullPointerException
这是它返回的唯一错误