Как добавить предмет на второй счетчик на основе первого счетчика? - PullRequest
0 голосов
/ 26 марта 2012

У меня есть два счетчика (Тема и Глава), я пишу две таблицы (Глава, тема).
Я добавляю все имена субъектов в тему вращения и мне нужно добавить все названия глав на основе
элементаВыбор в тему блесны.Мой вопрос в том, как это сделать, потому что мой код
не может этого сделать.Пожалуйста, дайте намек или ссылку.
Вот мой пример кода.

в onCreate ()

    addItemsOnSpinner1();
    addListenerOnSpinnerItemSelection();
    addItemsOnSpinner2();
    addListenerOnSpinner2ItemSelection();

используя вышеупомянутую функцию вызова, я вызываю соответствующий метод.

private void addItemsOnSpinner1() {
    try
    {
        final MySQLiteHelper m=new MySQLiteHelper(getBaseContext());
        final List<ObjectiveWiseQuestion> LocWiseProfile= m.getAllSubject();

        for (final ObjectiveWiseQuestion cn : LocWiseProfile)
        {
            list.add(cn.getSubjectName());

        }
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }

        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
            dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            subSpinner.setAdapter(dataAdapter);

}

 private void addListenerOnSpinnerItemSelection()
{
    subSpinner.setOnItemSelectedListener(new mySpinnerListener());

}


private void addItemsOnChapter() 
{
    try
    {

        db=new MySQLiteHelper(getBaseContext());
        db.getWritableDatabase();
        //String name=owq.getSubjectName();
        int id=db.getSubjectId(name);
        owq.setSubjectId(id);
        long subId=owq.getSubjectId();
        final MySQLiteHelper m=new MySQLiteHelper(getBaseContext());
         final List<ObjectiveWiseQuestion> LocWiseProfile= m.getAllChapter(subId);

        for (final ObjectiveWiseQuestion cn : LocWiseProfile)
        {

            list.add(cn.getChapterName());
        }


        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
            dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            chapSpinner.setAdapter(dataAdapter);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }

}
    private void addListenerOnSpinner2ItemSelection() 
{
    try
    {
        chapSpinner.setOnItemSelectedListener(new mySpinnerListener2());
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }

}

Вот мой класс слушателей.

class mySpinnerListener2 implements Spinner.OnItemSelectedListener
{
    @Override
    public void onItemSelected(AdapterView parent, View v, int position,
            long id) 
    {
        Toast.makeText(parent.getContext(), "The chapter is  " +
                  parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
        owq.setChapterName(parent.getItemAtPosition(position).toString());

    }

    @Override
    public void onNothingSelected(AdapterView parent) 
    {
        // Do nothing.
    }

}
class mySpinnerListener implements Spinner.OnItemSelectedListener
{
    @Override
    public void onItemSelected(AdapterView parent, View v, int position,
            long id) 
    {
        Toast.makeText(parent.getContext(), "The subject is  " +
                  parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
        owq.setSubjectName(parent.getItemAtPosition(position).toString());
        name=parent.getItemAtPosition(position).toString();



    }

    @Override
    public void onNothingSelected(AdapterView parent) 
    {
        // Do nothing.
    }

}

Когда я пытаюсь его скомпилировать, но он показывает нулевое значение.Дайте некоторую помощь.
Заранее спасибо ....... Не нашел хорошего ответа .....

MysqliteHelper.java

public List<ObjectiveWiseQuestion> getAllChapter(long subId)
    {
     List<ObjectiveWiseQuestion>LocwiseProfileList=new ArrayList<ObjectiveWiseQuestion>();
     String selectQuery=("select chapterName from chapter where s_id ='"+ subId +"'");
     SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToFirst())
        {
            do {
                ObjectiveWiseQuestion owq= new ObjectiveWiseQuestion();
                owq.setChapterName(cursor.getString(2));
                LocwiseProfileList.add(owq);
              }
            while(cursor.moveToNext());
            db.close();
        }

        return LocwiseProfileList;
    }

1 Ответ

1 голос
/ 26 марта 2012

Сделайте следующее изменение в вашем классе myspinnerlistener.

   class mySpinnerListener implements Spinner.OnItemSelectedListener
    {
    Spinner chapSpinner;
        public mySpinnerListener(Spinner chapSpinner){
    this.chapSpinner = chapSpinner;
        }
        @Override
        public void onItemSelected(AdapterView parent, View v, int position,
                long id) 
        {
            Toast.makeText(parent.getContext(), "The subject is  " +
                      parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
            owq.setSubjectName(parent.getItemAtPosition(position).toString());
            name=parent.getItemAtPosition(position).toString();
            // fetch the chaper names and set them on spinner
    chapSpinner.setAdapter(Here pass your adapter);


        }

        @Override
        public void onNothingSelected(AdapterView parent) 
        {
            // Do nothing.
        }

    }

И это изменение также

 private void addListenerOnSpinnerItemSelection()
{
    subSpinner.setOnItemSelectedListener(new mySpinnerListener(chapSpinner));

}

Я думаю, что это решит вашу проблему.

...