0

我有一个列表视图,其中填充了从数据库(mysql)中检索到的项目。一切正常,数据按要求显示。现在是最后一步的时候了:当点击表格上的一个项目时,它应该在下一页加载有关该项目的更多详细信息。我相信这很简单。如果我可以根据数据库表获取元素的 id,那么我可以在下一个屏幕上查询并轻松加载数据。

问题是如何获取项目的 id,因为它在 mysql 表上?下面是我的适配器和列表代码:

这是完成大部分工作的adapterview方法:

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO Auto-generated method stub
        if(arg1==null)
            arg1 = layoutInflator.inflate(R.layout.simplerow ,arg2, false);

        TextView name = (TextView)arg1.findViewById(R.id.nameTxtView);
        TextView rate = (TextView)arg1.findViewById(R.id.rateTxtView);
        //name.setText(discountObjectArray[arg0].name + "---> " + discountObjectArray[arg0].location + "---> " +discountObjectArray[arg0].rate);
        String tempName = discountObjectArray[arg0].name;


        tempName = ellipsize(tempName, 6);
        name.setText(tempName);
        rate.setText(discountObjectArray[arg0].rate);
        return arg1;
    }
    public static String ellipsize(String input, int maxLength) {
          if (input == null || input.length() <= maxLength) {
            return input;
          }
          return input.substring(0, maxLength-1) + "...";
        }

}

这是显示简单吐司的列表代码:

discountListingListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {


                RelativeLayout tempParent = (RelativeLayout) view;
                TextView t = (TextView) tempParent.findViewById(R.id.nameTxtView);
                Toast.makeText(getBaseContext(), t.getText(), Toast.LENGTH_LONG).show();

            }
        });

我对android很陌生,感谢您的支持

4

2 回答 2

1

将数据库 ID 保留为 discountObjectArray 元素的属性。然后在您的适配器中覆盖此方法:

@Override
public long getItemId(int position) {
    return discountObjectArray[position].id;
}

现在数据库 id 将作为 onItemClick 方法的“id”参数提供。

于 2013-07-27T15:24:52.740 回答
0

您应该在 ArrayAdapter 上使用 ArrayList 或 List .. 这个;

@Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            String Name = discountObjectArray[position].name;                
            Toast.makeText(getBaseContext(), Name, Toast.LENGTH_LONG).show();
        }
    });
于 2013-07-27T15:18:05.783 回答