2014-01-14 62 views
4

我创建了2个coloumns的gridview。 我需要在运行时在每列中动态创建一个按钮和一个textview。 我无法编写它的baseadapter类。 我应该如何夸大我的看法在gridview。如何以编程方式将视图添加到gridview,android?

这是我的适配器类

public class Adapter extends BaseAdapter { 
    Context con; 
    Integer[] m; 

    public Adapter(Context c) { 
     con = c; 
    } 

    public Adapter(Integer[] x) { 
     m = x; 
    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return m.length; 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return m[position]; 
    } 

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

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     Button btn = new Button(con); 
     TextView textview =new TextView(con); 


     return null; 
    } 

} 
+1

为什么不能有一个xml布局按钮和文本infalte布局并在getView – Raghunandan

+0

中更新ui在视图中添加您在getView()中膨胀的按钮和textview。 –

+0

@Raghunandan不能使用xml – WISHY

回答

7

你可以这样做:

public class Adapter extends BaseAdapter { 
Context con; 
Integer[] m; 

public Adapter(Context c, Integer[] x) { 
    con = c; 
    m = x; 
} 



@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return m.length; 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return m[position]; 
} 

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

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LinearLayout layout = new LinearLayout(mContext); 
    layout.setLayoutParams(new GridView.LayoutParams(
      android.view.ViewGroup.LayoutParams.FILL_PARENT, 
      android.view.ViewGroup.LayoutParams.FILL_PARENT)); 
    layout.setOrientation(LinearLayout.HORIZONTAL); 

    Button btn = new Button(mContext); 
    btn.setLayoutParams(new LinearLayout.LayoutParams(
      android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
      android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 
    btn.setText("Btn " + position); 

    TextView textview = new TextView(mContext); 
    textview.setLayoutParams(new LinearLayout.LayoutParams(
      android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
      android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 
    textview.setText("TV " + position); 
    textview.setTextColor(Color.RED); 

    layout.addView(textview); 
    layout.addView(btn); 

    return layout; 
} 

} 

将工作:)

相关问题