その中の商品でリストを作っています。そのリストの各行には、商品を買い物リストに追加するためのボタンが必要です。buttonLayout.addView
しかし、私は一日中これにこだわっているので、何かがうまくいきません。誰かが私を助けてくれることを願っています。
これはarraylistのコードです
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
これは私のlogcatです:
09-25 12:38:22.850: E/log_tag(4992): Error parsing data java.lang.NullPointerException
これはそれが返す唯一のエラーです