2013-02-07 68 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) {    

      } 
     }); 
相關問題