Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式将视图添加到gridview,android?_Android_Gridview_Dynamic - Fatal编程技术网

如何以编程方式将视图添加到gridview,android?

如何以编程方式将视图添加到gridview,android?,android,gridview,dynamic,Android,Gridview,Dynamic,我已经创建了一个2列的gridview。 我需要有一个按钮和一个文本视图,它们在运行时在每个列中动态创建。 我无法编写其baseadapter类。 我应该如何在gridview中膨胀我的视图 这是我的适配器类 public class Adapter extends BaseAdapter { Context con; Integer[] m; public Adapter(Context c) { con = c; } pub

我已经创建了一个2列的gridview。 我需要有一个按钮和一个文本视图,它们在运行时在每个列中动态创建。 我无法编写其baseadapter类。 我应该如何在gridview中膨胀我的视图

这是我的适配器类

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

}

您可以执行以下操作:

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

}

它将起作用:)

为什么不在getView中添加带有按钮和文本的xml布局在getView中添加布局和更新ui在getView()中正在膨胀的视图中添加按钮和文本视图@raghundan不能使用xml实际上我正在更新一个旧项目,其中所有的事情都在进行中dynamically@Wishy拥有xml布局不会影响代码的其余部分