Android用户界面-向Gridview动态添加按钮

Android用户界面-向Gridview动态添加按钮,android,dynamic,user-interface,android-listview,android-gridview,Android,Dynamic,User Interface,Android Listview,Android Gridview,这就是我现在被困的地方。我一直在为gridview动态添加按钮。 -我的gridview以一个按钮启动。 -当用户点击该按钮时,弹出一个上下文菜单,要求用户输入信息,一旦完成。网格视图中的块将使用该信息创建 -如图所示 我已经粘贴了代码。我不清楚怎么做。我假设它将膨胀一个新视图并将其添加到父视图(布局或网格?)中。我不知道如何编写代码。我试过谷歌的很多东西。我想我可以从简单的图像gridview开始,并根据自己的需要修改它,但它不起作用 请提供一些指导 创建_team_new.xml(grid

这就是我现在被困的地方。我一直在为gridview动态添加按钮。
-我的gridview以一个按钮启动。
-当用户点击该按钮时,弹出一个上下文菜单,要求用户输入信息,一旦完成。网格视图中的块将使用该信息创建
-如图所示

我已经粘贴了代码。我不清楚怎么做。我假设它将膨胀一个新视图并将其添加到父视图(布局或网格?)中。我不知道如何编写代码。我试过谷歌的很多东西。我想我可以从简单的图像gridview开始,并根据自己的需要修改它,但它不起作用

请提供一些指导

创建_team_new.xml(gridview所在的布局)

1) 如何在主视图中创建列表视图,仅使用屏幕的一半

这是通过“权重”属性完成的。草图的一个粗略示例:顶部包装(编辑文本和按钮)的权重为.45,列表视图的权重为.45,页脚的权重为.1。可以在周围视图中指定权重和;但默认值应该是1

2) 如何以网格方式填充列表视图(一行两列将重复)


嗯,使用(适配器API是相同的)(:

在我看来是可能的2,为什么不呢?只是关于listview的一个小提示。拥有listview将禁用scrollview。在您的情况下,这似乎是必要的。因此我建议嵌入并添加到视图中,而不是使用listview作为父布局您应该使用RelativeLayout,这样很容易“粘住”父布局底部的按钮3@user1281750:谢谢!!!!我建议嵌入并添加到视图中,而不是使用listview。你能用粗体描述一下吗?我正在学习我的应用程序:)我更新了上面的问题。请帮助。很棒的主意!!让我来处理这些问题,我会用一些代码检查,如果我有问题:)添加带有自定义标签字符串的按钮就是您想要做的吗?或者您需要添加自定义视图吗?谢谢…当用户单击“+”按钮时..联系人选择器出现…用户应该能够选择一个或多个联系人…一旦完成选择。。。网格以按钮的形式填充所选联系人…..现在,如果用户长按任何按钮..弹出菜单将显示编辑或删除选项…..“+按钮”始终保持在位置(1,1)在这种情况下,您需要存储对联系人的用户条目的一些引用。您可以考虑编写一个用户类,该类在需要时保留引用和附加数据(如名称)。然后,您应该切换到管理网格中的用户对象的ArrayAdapter。但看起来您之前还需要一些基础知识。请看一些ListView/ArrayAdapter教程(它与GridView的API相同)。外面有很多材料。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/parentcreateteam"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
     android:background="@drawable/background">

<TextView
    android:id="@+id/citytextview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/city"
    android:layout_alignTop="@+id/teamcity"
    android:layout_alignParentLeft="true" />

<AutoCompleteTextView
    android:id="@+id/teamname"
    android:layout_width="244dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/teamcity"
    android:layout_alignRight="@+id/gridviewplayer"
    android:text="@string/teamname"
    android:textSize="18sp" >
<requestFocus />
</AutoCompleteTextView>
<Button
    android:id="@+id/createteam"
    android:layout_width="140dp"
    android:layout_height="wrap_content"
    android:text="Create Team"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
     android:background="@drawable/red_button"
          style="@+style/button_text" />

<TextView
    android:id="@+id/teamnametextview"
    android:layout_width="wrap_content"
    android:layout_height="22dp"
    android:layout_alignBaseline="@+id/teamname"
    android:layout_alignBottom="@+id/teamname"
    android:layout_alignParentLeft="true"
    android:text="@string/teamname" />

<AutoCompleteTextView
    android:id="@+id/teamcity"
    android:layout_width="244dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/cricket"
    android:layout_alignRight="@+id/gridviewplayer"
    android:layout_below="@+id/teamname"
    android:layout_marginTop="22dp"
    android:ems="10"
    android:text="@string/city"
    android:textSize="18sp" >


</AutoCompleteTextView>

<TextView
    android:id="@+id/radiotextview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/teamcity"
    android:layout_marginTop="15dp"
    android:text="Pick a Sport" />


<GridView
    android:id="@+id/gridviewplayer"
    android:layout_width="match_parent"
    android:layout_height="170dp"
    android:layout_above="@+id/createteam"
    android:layout_below="@+id/pick_sport"
    android:layout_centerHorizontal="true"
    android:background="@drawable/gv_bkg"
 android:padding="5dp"
    android:numColumns="4" >

</GridView>



<RadioGroup
    android:id="@+id/pick_sport"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:layout_alignRight="@+id/createteam"
    android:layout_below="@+id/radiotextview"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/cricket"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cricket" />

    <RadioButton
        android:id="@+id/soccer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Soccer" />
</RadioGroup>

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<Button  android:id="@+id/btn_player"
    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:text= "+"

    android:background="@drawable/red_button">

</Button>
</LinearLayout>
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;

public class PlayerAdapter extends BaseAdapter {

    private Context mContext;
    LayoutInflater inflater;

    // Keep all Images in array
    public Integer[] mThumbIds = {};
        /*  R.drawable.gridview_createteam, R.drawable.pic2,
            R.drawable.pic3, R.drawable.pic4,
            R.drawable.pic5, R.drawable.pic6,
            R.drawable.pic7, R.drawable.pic8,
            R.drawable.pic9, R.drawable.pic10,
            R.drawable.pic11, R.drawable.pic12,
            R.drawable.pic13, R.drawable.pic14,
            R.drawable.pic15
    };
*/
    // Constructor
    public PlayerAdapter(Context c){
        mContext = c;
    }

    @Override
    public int getCount() {
        return mThumbIds.length;
    }

    @Override
    public Object getItem(int position) {
        return mThumbIds[position];
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @SuppressWarnings("static-access")
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = new View(mContext);
        view.inflate(mContext, R.layout.gv_createplayer,null);

        return view;


    }


}