Android UI - 动态添加按钮到 Gridview

2024-04-12

这就是我现在陷入困境的地方。我一直坚持向 gridview 动态添加按钮。
- 我的 gridview 带有一个按钮。
- 当用户单击该按钮时,会弹出上下文菜单,要求用户输入信息(完成后)。使用该信息创建网格视图中的块
- 如图所示

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

请提供一些指示。

create_team_new.xml(gridview所在的布局)

<?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>

gv_createplayer.xml(视图在gridview内膨胀)

<?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>

PlayerAdapter.java(gridview适配器)

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;


    }


}

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

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

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

好吧,随着GridView http://developer.android.com/guide/topics/ui/layout/gridview.html(适配器API是相同的)(:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android UI - 动态添加按钮到 Gridview 的相关文章

随机推荐

  • Java 垃圾收集,将引用设置为 null

    public class A A a public static void main String args A b new A new object created obj1 b a new A new object created ob
  • 使用 Werkzeug 和 Jinja2 的上下文处理器

    我的应用程序在 App Engine 上运行并使用Werkzeug http werkzeug pocoo org and Jinja2 http jinja pocoo org 2 我想要一个功能上与 Django 自己的上下文处理器等效
  • 尝试调用未定义的函数 glutInit

    我需要 python 中的一个过剩窗口 我使用 Python 3 5 和 PyOpenGL GLUT 时出现以下异常 Traceback most recent call last File D Test py line 47 in
  • Firestore没有执行操作的权限

    我正在尝试在 Firestore 中设置规则 如果每个人都经过身份验证进入应用程序 则每个人都可以读取彼此的内容 但只有文档所有者才能创建 写入 更新或删除它们 我在 Firestore 中设置了以下规则 rules version 2 s
  • Unity,如何将相机切换到第二个物体的位置?

    我在 Unity 3D 中遇到奇怪的问题 我的想法是找到数组中距离玩家最近和第二近的对象 然后我希望相机移动到最近的物体的位置并看着玩家 但如果玩家和最近的物体之间的距离太小 我希望相机移动到第二个物体的位置 我做了一些编码 但我不知道为什
  • 在 Silverlight 中使用 .NET RIA 服务有哪些陷阱?

    Silverlight可以使用WCF Web服务 基于REST的服务 NET RIA服务 但似乎Silverlight和 NET RIA服务是最受欢迎的 我想知道您在使用 NET RIA 服务实际实施 SL 时是否遇到过任何常见问题 如果继
  • 如何读取 RCFile

    我正在尝试将一个小的 RCFile 约 200 行数据 读入 HashMap 中以进行 Map Side 连接 但是在将文件中的数据变为可用状态时遇到了很多麻烦 这是我到目前为止所拥有的 其中大部分来自这个例子 http sumit1001
  • 如何从列表中选择每个第n个元素[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Haskell 中获取无限列表的每个第 N 个元素 https stackoverflow com questions 2026912 how to get every nth element
  • Java 流惰性 vs 融合 vs 短路

    我试图对 Java 流 API 中惰性求值的应用形成一个简洁而连贯的理解 目前我的理解是这样的 元素仅在需要时才被消耗 即流是惰性的 并且中间操作是惰性的 例如过滤器 仅在需要时进行过滤 中间操作可以融合在一起 如果它们是无状态的 短路操作
  • 具有多个字段的 Angular 模板驱动表单验证

    假设我有一个带有一些字段的简单表单 堆栈闪电战示例 https stackblitz com edit angular ktk7ez Component selector my app template h1 AppComponent h1
  • 使用基本 R 功能舍入 POSIX 日期 (POSIXct)

    我目前正在为我正在构建的包考虑很多日期和时间 绊倒这个post https stackoverflow com questions 8333838 how do you generate a sequence of the last day
  • 电子邮件解析云服务[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 似乎无法使用 Magit 推送到 GitHub

    我正在尝试在 Emacs 24 3 1 上使用 Magit 推送到 GitHub 存储库 请注意 我使用的是 Windows 盒子 我已经暂存并提交了对文件的更改 并且 M x magit status 仅反映驻留在我的存储库克隆中的未跟踪
  • xcodebuild 说不包含方案

    我有一个好奇心问题 我有一个项目 我一直在使用 XCode IDE 构建 并且运行良好 现在我正在设置 Bamboo 来构建项目 因此从命令行构建它 问题是 如果我从 GIT 中检查我的代码 然后使用 xcodebuild 来构建它 它会说
  • 如何对字符串中的子字符串重新排序?

    如何在 Perl 中的正则表达式中进行以下转换 British style US style 2009 27 02 gt 2009 02 27 我是 Perl 新手 对正则表达式了解不多 我能想到的就是提取 的不同部分 然后重新连接字符串
  • 使用 cassandra-cli 创建两个复合列

    我的列族需要两个复合列 关键数据类型是BytesType 以下是使用 CQL 的表定义 CREATE TABLE stats gid blob period int tid blob sum int uniques blob PRIMARY
  • 有没有办法用 EureakLog 进行正常日志记录?

    我正在使用 和旧版本 EurekaLog 它对于记录异常非常有用 但是有没有办法让它只正常记录事情呢 或者它根本不是为了这个目的 克里斯已经提到了我们的日志工具智能检测 http www gurock com smartinspect 谢谢
  • C++ 类设计、基类继承或外观设计模式

    我有一个愚蠢的 C 设计问题 有没有一种方法可以让一个类与多个类中的方法具有相同的方法名称 因此 具有相同的 API 我现在的情况是我有上课的情况 struct A void foo std cout lt lt A foo lt lt s
  • 如何继续 Subversion 中失败的加载

    我已经开始将颠覆转储加载到存储库中 在它完成之前 我耗尽了配额 命令停止了 我已要求更多配额 但现在我不知道如何继续进口 我应该简单地重做相同的命令吗 svnadmin load parent dir Software xxx module
  • Android UI - 动态添加按钮到 Gridview

    这就是我现在陷入困境的地方 我一直坚持向 gridview 动态添加按钮 我的 gridview 带有一个按钮 当用户单击该按钮时 会弹出上下文菜单 要求用户输入信息 完成后 使用该信息创建网格视图中的块 如图所示 我已经粘贴了代码 我不知