-1

我从我的 sql lite 数据库中获取数据,该数据库显示在列表视图中。现在,一旦用户单击列表视图,我希望自动获取所有详细信息,并且应该在文本字段中进行限制例如,假设我有一个客户列表数据库,其中包含名称区域地址移动和 id 作为主键. 现在,当我从我的应用程序中搜索名称为 john 时,列表视图将显示我数据库中所有 jhons 的一些选定详细信息。现在,一旦用户单击其中一个 jhon,我希望他的详细信息被限制在我的文本字段中。我希望我已经清除了我想要的东西。如果没有,请随意询问请任何人帮助我,提前谢谢你。

4

3 回答 3

0

您使用什么代码从 listview 获取数据

为您的列表视图创建一个行 xml 绑定 baseAdapter 中的行并将该 baseadapter 设置为列表视图它将显示在列表视图中

于 2013-02-07T07:04:16.727 回答
0

编辑

首先,确保您正确地创建了游标,也就是说,确保您将要访问的列通过正确的投影在查询语句中声明。ü

public static final String [] projection= {
    Database.Customers.Media._ID,       
    Database.Customers.Media.NAME,
    Database.Customers.Media.PHONE,
    Database.Customers.Media.EMAIL,
    Database.Customers.Media.ADDRESS,
};

通过查询传递:

Cursor cursor = mContentResolver.query(uri, projection, selection, selectionArgs, sortOrder);

然后到适配器:

mAdapter = new YourCustomerAdapter(getActivity(),
                        R.layout.custom_list_view_layout, 
                        mCursor, 
                        from, to, 
                        SampleCursorAdapter.NO_SELECTION);    

如果您自定义适配器代码,您的 from 和 to 真的无关紧要。但是,如果您使用库存适配器,它们将限制您的数据。

客户绑定:

@Override
 public void bindView(View view, Context context, Cursor cursor) {
     ViewHolder mHolder = (ViewHolder) view.getTag();

     if (mHolder == null) {
         mHolder = new ViewHolder();
         mHolder.name= (TextView) view.findViewById(R.id.list_item_name);
         mHolder.phone = (TextView) view.findViewById(R.id.list_item_phone);
     }

     mHolder.name.setText(cursor.getString(1));
     mHolder.phone .setText(cursor.getString(2));

 }

您要填充的 uiItems 越多,您将通过 onBind 初始化的越多,然后将光标数据关联到它们。

如果您尝试访问列索引或未在投影中定义的列,这意味着它不是游标的一部分,那么您将收到运行时错误。

于 2013-02-07T07:09:51.520 回答
0

试试这个:

my_listview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {              

            }
        });
于 2013-02-07T07:34:10.783 回答