2011-11-11 29 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! !

相关问题