2013-02-07 15 views
-1

我从列表视图中显示的我的sql lite数据库中获取数据。现在,一旦用户点击列表视图,我希望所有的细节都被自动提取,并且应该以文本字段为边界 例如, 假设我有一个客户列表的数据库,其中包含名称区域地址为mobile和id的列作为首要的关键。 现在,当我从我的应用程序搜索名称说john时,列表视图将显示我的数据库中的所有jhons的一些选定的细节。 现在,一旦用户点击其中一个jhons,我希望他的细节在我的文本字段中被限制。 我希望我已经清除了我想要的东西。如果不是,请随时问 请任何人都可以帮助我,谢谢你提前。我想从我的列表视图中获取数据,从数据库中显示信息,因为我希望数据自动绑定在文本字段中

回答

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);  

你从和如果您自定义适配器代码真的并不重要。但是,如果您使用股票适配器,它们将限制您的数据。

客户onBind:

@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初始化,然后将光标数据关联到他们。

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

+0

我正在接收来自数据库的数据,但它没有在我的列表视图中绑定。 –

+0

已更新的答案。 –

1

你使用的是什么代码从列表视图

获取数据为您的列表视图行XML 行绑定在baseAdapter 并设置baseadapter到的ListView 它会在列表视图中显示

+0

字符串[]从=新的String [] {dbh.CId,dbh.CustName,dbh.CustArea,dbh.CustMobile}; int [] to = new int [] {R.id.custdetailId,R.id.custdetailName,R.id.custdetailArea,R.id.custdetailMobile}; SimpleCursorAdapter sca = new SimpleCursorAdapter(getApplicationContext(),R.layout.customerdetail,c,from,to); lv.setAdapter(sca); –

+0

umm其实,通过这段代码我得到我的数据并将其设置到列表中,但是当我尝试获取更多字段/ coloumns表单数据库时,显示错误。 –

+0

我的意思是强制关闭 –

0

尝试这种情况:

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

      } 
     }); 
相关问题