2012-03-26 9 views
0

두 개의 회 전자 (제목 및 장)가 있으며 두 개의 표 (장, 제목)가 있습니다.
주제별 회 전자에 주제 이름을 모두 추가 했으므로 주제 회람에있는 항목 선택의
기준에 모든 장 이름을 추가해야합니다. 내 질문은 내
코드가이를 수행 할 수 없기 때문에 그 방법입니다. 힌트 또는 참고 자료를 제공해주십시오.
내 샘플 코드는 다음과 같습니다. 제가 적절한 메소드를 호출 함수를 호출하여 상기하지 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. 
    } 

} 

컴파일 할 때 null 값이 표시됩니다. 도움을주세요. 좋은 답변을 찾을 사전에
감사합니다 ....... .....

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; 
    } 
+0

코드에서 owq는 무엇입니까? – user936414

+0

이 도움이 될 수 있습니다. http://stackoverflow.com/questions/9465167/populating-a-spinner-from-another-spinner-depending-on-condition/9465340#9465340 – Hiral

+0

owq는 getter-setter 클래스의 객체입니다. –

답변

1

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

} 

나는이 문제를 해결할 것이라 생각합니다.

+0

작동하지 않습니다 ..... –

+1

배열 어댑터를 chapspinner로 설정하는 코드를 게시 할 수 있습니까? –

+0

"내 질문 편집" –

관련 문제