Spinner с базой данных sqlite в Android - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть один счетчик, одна кнопка и ListView.

Я хочу выбрать элемент из прядильщика, и после нажатия кнопки совпадение обтекателя и содержимого базы данных должно отображаться в ListView. Значения базы данных имеют строковый тип данных.

Пожалуйста, кто-нибудь может подсказать мне, как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 11 ноября 2011

Для прядильщика сначала создайте адаптер, например:

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, а затем откройте базу данных ur:

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

Это добавит значение вашего столбца базы данных в счетчик

0 голосов
/ 11 ноября 2011

Например:

     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
                              }
                       });
                 }  
           }
      });
0 голосов
/ 11 ноября 2011

Вы можете выполнить эти шаги, предполагая, что счетчик заполнен строковым массивом:

i) В событии setOnItemSelectedListener получить позицию выбранной позиции на

int pos=urspinner.getSelectedItemPosition() и получить строку по

 strsel=arrstr[pos]; 

ii) при прослушивании щелчка по кнопке используйте strsel, чтобы заполнить listadapter путем запроса базы данных

СДЕЛАНО !!!! * * 1013

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...