嗨我有一个表“TABLE_OBJECTIVE”有1个问题和4个选项,我接受来自
EditText上。我的问题是如何将此问题显示为父级,将4个选项显示为子级
在可扩展列表视图中。我使用一些代码,但它不显示问题,只显示左
4中的一个选项。
这是我的示例代码。
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个选项(谷歌,三星,诺基亚,Onida)
在此先感谢。
答案 0 :(得分:2)
嗨,请尝试使用此代码,它可以解决一个问题,但是因为我使用数组列表和散列映射,您可以使用长度和大小函数来解决多个问题
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);
}
}
}