2012-03-19 2 views
0

Привет, у меня есть одна таблица «TABLE_OBJECTIVE» с 1 вопросом и 4 опцией, которую я принимаю от
EditText. Мой вопрос заключается в том, как показать этот вопрос как родительский и 4-й вариант как дочерний
в расширяемом виде списка. я использую какой-то код, но он не отображает вопрос и отображается только
один вариант из 4.
Вот мой пример кода.Извлечь данные из SQLite в расширяемый список?

public class ObjectiveExamActivity extends ExpandableListActivity { 

@SuppressWarnings("unchecked") 
public void onCreate(Bundle savedInstanceState) { 
    try{ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.displayobjectiveque); 
     Intent intent=getIntent(); 
     setResult(RESULT_OK, intent); 

    SimpleExpandableListAdapter expListAdapter = 
     new SimpleExpandableListAdapter(
       this, 
       createGroupList(),    
       R.layout.group_row,    
       new String[] { "Group Item" }, 
       new int[] { R.id.row_name },  
       createChildList(),    
       R.layout.child_row,    
       new String[] {"Sub Item"},  
       new int[] { R.id.grp_child}  
      ); 
     setListAdapter(expListAdapter);  

    }catch(Exception e){ 
     System.out.println("Errrr +++ " + e.getMessage()); 
    } 
} 
@SuppressWarnings("unchecked") 
private List createGroupList() { 
     ArrayList result = new ArrayList(); 
    final MySQLiteHelper m=new MySQLiteHelper(getBaseContext()); 
    final ArrayList<ObjectiveWiseQuestion> LocWiseProfile= (ArrayList<ObjectiveWiseQuestion>) m.getAllObjectiveQuestion();  

    for (final ObjectiveWiseQuestion cn : LocWiseProfile) 
    {  
     HashMap m1=new HashMap(); 
     m1.put("Question",cn.getQuestion()); 
     result.add(m1);   
    } 
    return (List)result; 
} 

@SuppressWarnings("unchecked") 
private List createChildList() 
{ 
    final MySQLiteHelper m=new MySQLiteHelper(getBaseContext()); 
    final ArrayList<ObjectiveWiseQuestion> LocWiseProfile= (ArrayList<ObjectiveWiseQuestion>) m.getAllObjectiveQuestion(); 
    ArrayList result = new ArrayList(); 
    for (final ObjectiveWiseQuestion cn : LocWiseProfile) 
    { 
     /* each group need each HashMap-Here for each group we have 4 subgroups */ 
     ArrayList secList = new ArrayList(); 
     for(ObjectiveWiseQuestion cn1: LocWiseProfile) 
     { 
     HashMap child = new HashMap(); 
     //child.putAll(cn.getOptionA(),cn.getOptionB(),cn.getOptionC()); 
     child.put("Sub Item", "Sub Item " + cn.getOptionA()); 
     child.put("", cn.getOptionB()); 
     child.put("Option C", cn.getOptionC()); 
     child.put("Option D", cn.getOptionD()); 
     secList.add(child); 
     } 
    result.add(secList); 
    }   
    return result; 
} 

Я действительно не понимаю, где проблема в моем коде.
Пожалуйста, дайте мне подсказку или ссылку.
Вот изображение эмулятора, который показывает только один элемент.
У меня есть 4 варианта (Google, Samsung, Nokia, Onida).
Спасибо заранее.
enter image description here

ответ

2

Привет, пожалуйста, попробуйте этот код его работает отлично для меня один вопрос, но, как я использовал список массива и HashMap вы можете использовать длину и размер функции для нескольких вопросов

public class ShowQuiz extends Activity { 
    /** Called when the activity is first created. */ 
    ExpandableListView expandableListView; 

    HashMap<String, Options> hashMap; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Options options=new Options(); 
     hashMap=new HashMap<String, Options>(1); 
     hashMap.put("Which is Domestic Animal?", options); 
     expandableListView=(ExpandableListView) findViewById(R.id.ev); 
     expandableListView.setAdapter(new QuizQuestionAdapter()); 
    } 

    class QuizQuestionAdapter extends BaseExpandableListAdapter 
    { 

     @Override 
     public Object getChild(int groupPosition, int childPosition) { 
      // TODO Auto-generated method stub 
      return hashMap.get(0).fetchOptions().get(childPosition); 
     } 

     @Override 
     public long getChildId(int groupPosition, int childPosition) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     @Override 
     public View getChildView(int groupPosition, int childPosition, 
       boolean isLastChild, View convertView, ViewGroup parent) { 
      // TODO Auto-generated method stub 
      TextView textView=new TextView(ShowQuiz.this); 
      textView.setText(hashMap.get("Which is Domestic Animal?").getQuestion(childPosition).toString()); 
      return textView; 

     } 

     @Override 
     public int getChildrenCount(int groupPosition) { 
      // TODO Auto-generated method stub 
      return 4; 
     } 

     @Override 
     public Object getGroup(int groupPosition) { 
      // TODO Auto-generated method stub 
      return hashMap.get(0); 
     } 

     @Override 
     public int getGroupCount() { 
      // TODO Auto-generated method stub 
      return 1; 
     } 

     @Override 
     public long getGroupId(int groupPosition) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     @Override 
     public View getGroupView(int groupPosition, boolean isExpanded, 
       View convertView, ViewGroup parent) { 
      // TODO Auto-generated method stub 
      TextView textView=new TextView(ShowQuiz.this); 
      textView.setText("Which is Domestic Animal?"); 
      return textView; 
     } 

     @Override 
     public boolean hasStableIds() { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     @Override 
     public boolean isChildSelectable(int groupPosition, int childPosition) { 
      // TODO Auto-generated method stub 
      return false; 
     } 

    } 
    class Options 
    { 
     ArrayList<String> optns; 
     Options() 
     { 
      optns=new ArrayList<String>(4); 
      optns.add("rat"); 
      optns.add("cat"); 
      optns.add("dog"); 
      optns.add("tiger"); 
     } 

     public ArrayList<String> fetchOptions() 
     { 
      return this.optns; 
     } 

     public String getQuestion(int position) 
     { 
      return optns.get(position); 
     } 
    } 
} 
Смежные вопросы