2011-11-11 27 views
0

我有一個微調,一個按鈕和一個ListView。微調控制器在Android的SQLite數據庫

我想從微調器中選擇項目,點擊按鈕後,微調器和數據庫內容的匹配必須顯示在ListView中。數據庫值是字符串數據類型。

請有人可以指導我如何做到這一點?

回答

0

例如:

 setContentView(R.layout.main); 
     ListView lv=(ListView)findViewById(R.id.listview); 
     Button b=(Button)findViewById(R.id.button); 
     Spinner sp=(Spinner)findViewById(R.id.spinner); 
     final ArrayList<String> options=new ArrayList<String>(); 

     Cursor cursor=dbHelper.getOptions();//method to get all options to be displayed in spinner,coming from your database 

     if(cursor.getCount()>0) 
     { 
      cursor.moveToFirst(); 
      for(int i=0;i<cursor.getCount();i++) 
      { 
       options.add(cursor.getString(cursor.getColumnIndex("field_name"))); 
       cursor.moveToNext(); 
      } 
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,options); 
      sp.setAdapter(adapter); 
     } 

     b.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

        Cursor c=db_helper.getRelatedItems(spinner.getSelectedItem().toString()); //get related data from database according to the item selected in spinner 
        if(c.getCount()>0) 
        {   
         CustomAdapter ca=new CustomAdapter(context,R.layout.listitem_layout,cursor,new String[]{"field 1","field 2"},new int[]{R.id.textview1,R.id.textview2}); 
         //here you would have to pass your custom layout file containing textviews or other component to display your data using CustomAdapter.class which you had prepared 
         listview.setAdapter(ca); 
         ca.notifyDataSetChanged(); 

         listview.setOnItemClickListener(new OnItemClickListener() {  
           @Override 
           public void onItemClick(AdapterView<?> arg0, View view, 
         int position, long id) { 

           //catch onClick on items of listview here 
           } 
         }); 
       } 
      } 
     }); 
1

對於微調,首先創建像適配器:

ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, R.array.months, android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

//這裏R.array.months的字符串數組在string.xml文件創建,然後打開烏爾數據庫:

if(mydb_expenditure!=null) 
{ 
    mydb_expenditure.close(); 
} 

mydb_expenditure=this.openOrCreateDatabase("Database_name", MODE_PRIVATE, null); 
if(mydb_expenditure!=null) 
{ 
    Cursor cursor = mydb_expenditure.rawQuery("select column name from "+TableName , null); 
    cursor.moveToFirst(); 
    int column=cursor.getColumnIndex("column name"); 
    if(cursor!=null) 
    { 
     do 
     { 
      column=cursor.getInt(column); 
      adapter12.add(column); 
     }while(.moveToNext()); 
    } 
    spinner.setAdapter(adapter12); 
} 

這會將您的數據庫列值添加到微調器中

+2

user932478,如果妳認爲這個答案是對你有用,然後點擊左邊這個答案的滴答聲,使其對所有用戶可見,並且還增加烏爾答案接受率獲取相關答案... – Kanika

0

您可以按照下面的步驟假設微調器使用字符串數組填充:

我)在setOnItemSelectedListener事件由

int pos=urspinner.getSelectedItemPosition()獲得所選位置的位置和按鈕點擊收聽由

strsel=arrstr[pos]; 

II)獲得字符串中使用strsel通過查詢數據庫

DONE填充listadapter! !

相關問題