在项目列表android中选择一个项目

时间:2013-10-10 03:16:49

标签: java android

我通过这样的循环创建列表Item

private void addItemToList(ItemRepository lst)
{       
    //Add item to list
    for(Item itm:lst.getItems())
    {
        addItem(itm);
    }
}

private void addItem(Item itm)
{               
    View item =   UtilMPos.getViewFromInflater(R.layout.item,Payment_ListItem.this);
    TextView lblItemName = (TextView)item.findViewById(R.id.inv_lblitemname);
    TextView lblItemDes = (TextView)item.findViewById(R.id.inv_lblitemdesc);
    TextView lblPrice = (TextView)item.findViewById(R.id.inv_lblValueItem);

    //Set value for text view
    lblItemName.setText(itm.getItemName());
    lblItemDes.setText(itm.getItemDes());
    lblPrice.setText(Double.toString(itm.getPrice()));

    //----process component item in here
    llstItem.addView(item);             
}

然后显示(我使用linearlayout显示列表项):

------------------------------------------------------
item_name 1                               Price
item_descripton
------------------------------------------------------
item_name 2                              Price
item_descripton
------------------------------------------------------
item_name 3                               Price
item_descripton
------------------------------------------------------

单击一行时,将选择该行(粗体行或类似的行),我可以获取该行的所有数据,例如:单击行item_name 1,我得到所有数据行1.

3 个答案:

答案 0 :(得分:1)

创建一个标记对象并将itemName,itemDesc,price字段放入其中。 最后这样做:

item.setTag(tagObjCreated);

当您单击该项并返回OnClickListener()中的视图时,请访问以下标记:

tagObjRetrieved = itemView.getTag();

并取回您需要的itemName,itemDesc,价格字段。

HTH。

答案 1 :(得分:0)

你知道“OnClickListener”吗?

样品:

public class Main extends Activity implements OnClickListener {

  ...
  View item = ...findViewById(...);
  item.SetOnClickListener(this);
 ....


  @Override
  public void onClick(View v) {

    switch (v.getId()) {
    case R.id.item_name1:
      // do something
      break;
    case R.id.item_name2:
      // do something
      break;
     }

  }


}

希望这有帮助。

答案 2 :(得分:0)

我找到了解决方案。我使用自定义列表视图,它工作正常,我解决了所有问题。