2014-12-31 2 views
0

My TableLayout не раздувает один раз для каждого родительского представления. Вместо этого TableLayout не раздувает вообще для первого родителя, раздувает один раз для второго родителя и дважды накачивается для третьего родителя.Раздувание таблицы в расширяемом виде списка

Любые мысли о том, почему Tablelayout не раздувается один раз на родительский режим?

Главный класс

package com.example.jbunn.gi; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.ExpandableListAdapter; 
import android.widget.ExpandableListView; 

public class LeaderBoard extends Activity { 

    ExpandableListView exv; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_leader_board); 
     exv = (ExpandableListView)findViewById(R.id.expandableListView); 
     exv.setAdapter(new MyAdapter(this)); 
    } 

} 

MyAdapter Класс

package com.example.jbunn.gi; 

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseExpandableListAdapter; 
import android.widget.EditText; 
import android.widget.GridView; 
import android.widget.TableLayout; 
import android.widget.TextView; 

public class MyAdapter extends BaseExpandableListAdapter{ 

    private Context context; 
    private LayoutInflater mLi; 

    String [] parentList = {"James", "Matt", "Rhodus"}; 

    public MyAdapter(Context context, LayoutInflater layoutInflater) { 
    mContext = context; 
    mLi = (LayoutInflater)context.getApplicationContext().getSystemService 
      (Context.LAYOUT_INFLATER_SERVICE); 
} 


static class ViewHolderItem { 
    TableLayout tl; 
} 
    @Override 
    public int getGroupCount() { 
     return parentList.length; 
    } 

    @Override 
    public int getChildrenCount(int i) { 
     return i; 
    } 

    @Override 
    public Object getGroup(int i) { 
     return i; 
    } 

    @Override 
    public Object getChild(int i, int i2) { 
     return null; 
    } 

    @Override 
    public long getGroupId(int i) { 
     return i; 
    } 

    @Override 
    public long getChildId(int i, int i2) { 
     return 0; 
    } 

    @Override 
    public boolean hasStableIds() { 
     return false; 
    } 

    @Override 
    public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) { 
     TextView tv = new EditText(context); 
     tv.setText(parentList[i]); 
     tv.setPadding(50,0,0,0); 
     return tv; 
    } 

    @Override 
    public View getChildView(int i, int i2, boolean b, View convertView, ViewGroup parent) { 

    ViewHolderItem viewHolder; 

    if(convertView ==null){ 
     // inflate the layout 
     LayoutInflater inflater = ((Activity) mContext).getLayoutInflater(); 
     convertView = inflater.inflate(R.layout.childgridview, parent, false); 
     // well set up the ViewHolder 
     viewHolder = new ViewHolderItem(); 
     viewHolder.tl = (TableLayout) convertView.findViewById(R.id.childgridview); 
     // store the holder with the view. 
     convertView.setTag(viewHolder); 

    }else{ 
     viewHolder = (ViewHolderItem) convertView.getTag(); 
    } 

    return convertView; 
} 

    @Override 
    public boolean isChildSelectable(int i, int i2) { 
     return false; 
    } 

} 

<?xml version="1.0" encoding="utf-8"?> 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:id="@+id/childgridview"> 

    <TableRow> 

     <TextView 
      android:id="@+id/one" 
      android:text="1" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/two" 
      android:text="2" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/three" 
      android:text="3" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/four" 
      android:text="4" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/five" 
      android:text="5" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/six" 
      android:text="6" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/seven" 
      android:text="7" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/eight" 
      android:text="8" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/nine" 
      android:text="9" 
      android:padding="10dp"/> 


    </TableRow> 

    <TableRow> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

    </TableRow> 

    <TableRow> 

     <TextView 
      android:id="@+id/ten" 
      android:text="10" 
      android:padding="10dp"/> 


     <TextView 
      android:id="@+id/eleven" 
      android:text="11" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/twelve" 
      android:text="12" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/thirteen" 
      android:text="13" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/fourteen" 
      android:text="14" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/fifteen" 
      android:text="15" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/sixteen" 
      android:text="16" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/seventeen" 
      android:text="17" 
      android:padding="10dp"/> 

     <TextView 
      android:id="@+id/eighteen" 
      android:text="18" 
      android:padding="10dp"/> 

    </TableRow> 

    <TableRow> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 

     <TextView /> 
    </TableRow> 

</TableLayout> 
+0

Где находится значение 'childList'? В стороне, вы также должны рассмотреть возможность использования ['SimpleExpandableListAdapter'] (http://developer.android.com/reference/android/widget/SimpleExpandableListAdapter.html), возможно. – stkent

+0

И «TableLayout», который вы пытаетесь раздуть, где? R.layout.childgridview? –

+0

Я удалил childList из getChildView, но забыл удалить его из getChildrenCount. Таким образом, для этого примера переменная childList не должна существовать. Да, TableLayout из R.layout.childgridview. – Jbuggs

ответ

0

Изменяя метод getChildrenCount вернуть "1" вместо I, то TableLayout отображается один раз для каждого родителя.

Смежные вопросы