首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在每个孩子中添加带有EditTexts的ListView - Android Studio

在Android Studio中为每个孩子添加带有EditText的ListView,可以通过自定义适配器来实现。以下是一个完整的示例代码:

首先,在XML布局文件中定义ListView和EditText的外部布局:

代码语言:xml
复制
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/addButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add Child"/>

</LinearLayout>

接下来,创建一个自定义适配器类来管理ListView中的数据和视图:

代码语言:java
复制
public class CustomAdapter extends BaseAdapter {

    private List<String> data;
    private LayoutInflater inflater;

    public CustomAdapter(Context context, List<String> data) {
        this.data = data;
        inflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int position) {
        return data.get(position);
    }

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

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        ViewHolder holder;

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.list_item, parent, false);
            holder = new ViewHolder();
            holder.editText = convertView.findViewById(R.id.editText);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.editText.setText(data.get(position));
        holder.editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                data.set(position, s.toString());
            }

            @Override
            public void afterTextChanged(Editable s) {
            }
        });

        return convertView;
    }

    private static class ViewHolder {
        EditText editText;
    }
}

在MainActivity中,设置ListView和按钮的点击事件:

代码语言:java
复制
public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private Button addButton;
    private CustomAdapter adapter;
    private List<String> data;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = findViewById(R.id.listView);
        addButton = findViewById(R.id.addButton);

        data = new ArrayList<>();
        adapter = new CustomAdapter(this, data);
        listView.setAdapter(adapter);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                data.add("");
                adapter.notifyDataSetChanged();
            }
        });
    }
}

这样,每次点击按钮时,都会在ListView中添加一个带有EditText的子项。用户可以在EditText中输入文本,并且该文本会保存在适配器的数据列表中。

请注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。在实际开发中,你可能需要添加删除子项的功能,以及处理EditText的文本变化事件等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 原 在PostgreSQL中秒级完成大表添加带有not null属性并带有default值的实验

    近期同事在讨论如何在PostgreSQL中一张大表,添加一个带有not null属性的,且具有缺省值的字段,并且要求在秒级完成。...因为此,有了以下的实验记录: 首先我们是在PostgreSQL 10下做的实验: postgres=# select version();...default 'test'; ALTER TABLE Time: 36803.610 ms (00:36.804) 明显看到时间花费相当长,其实PostgreSQL在这里将数据完全重写了,主要原因就是就是添加的字段带有...,如何快速添加这么一个字段: 首先,在这里我们涉及三张系统表,pg_class(表属性)、pg_attribute(列属性)、pg_attrdef(缺省值信息),接下来依次看一下三张表的信息: #pg_class...postgres=# alter table add_c_d_in_ms add a10 text; ALTER TABLE #如果添加not null属性的字段,则会检测其他字段属性,将会报错 postgres

    8.2K130

    在 Visual Studio Code 中添加自定义的代码片段

    无论是那个编辑器,如果能够添加一些自定义代码片段,能够大大提升代码的输入效率。 本文介绍如何在 Visual Studio Code 中添加自定义代码片段。...Visual Studio Code 的代码片段设置 你可以在 Visual Studio Code 的菜单中找到代码片段的设置入口,在 File -> Preferences -> User Snippets...打开快捷命令输入框进入 Insert Snippet 命令,输入 toc 可以看到我们刚刚加入的代码片段: 或者,在带有智能感知提示的文件中,可以直接通过智能感知提示插入: 在插入的代码片段中,...关于代码片段编写的更多细节 关于文件名称 在阅读前面的博客内容时,你可能注意到了:添加全局代码片段的时候,文件扩展名为 .code-snippets,例如 blog.code-snippets;添加语言特定的代码片段的时候...在 Visual Studio Code 中,你有这些变量可以使用: -TM_SELECTED_TEXT - 在插入代码片段的时刻选中的文本 -TM_CURRENT_LINE - 在插入代码片段的时刻光标所在的行

    1.1K30

    Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

    这个步骤在以后的代码中,你也可以看到,或者你打过,我这里也打过。 创建一个动态UI:FragmentManager提供了对Activity运行时的Fragment的添加、删除、替换的操作。...在它的核心,它代表一个更大的运行的特定操作或接口Activity。片段与它所处的活动密切相关,不能与之分开使用。...给个链接你们看:http://blog.csdn.net/lmj623565791/article/details/37970961 Android Studio中的依赖关系 在Android Studio...:26.0.0-alpha1' } 如何添加依赖关系 打开android studio软件,选择file–>project structure…菜单项,然后打开project structure中,在...进入到该项目中点击中间位置中的“Dependencies”后,进行点击添加按钮“+”。弹出的下拉的菜单中进行选择”Module dependency“。然后选中要的添加,点击“OK”即可。

    1.8K30

    在android studio中启动模拟器的时候报错...keeps shopping

    大家好,在写安卓的时候我这边只写前端的简单页面,在写跳转的时候就开始报错了,本人看了好几天也没定位到错误,希望各位大神遇到的多多指点。...(this); 是在一起的 之前大家一直问有解决没有 我这里是贴了解决的办法 可能不明显 我遇到的是这个问题 ,希望可以帮到大家 package com.lenovo.myapplication;...import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle...; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity...写作、阅读、分享,用独自的思考和感悟分享给互联网里的每一位技术人。 不爱学习的我们,无力的挣扎吧!

    7110

    android 在 ListView 的 item 中插入 GridView 仿微信朋友圈图片显示。

    ,这里我分了两个数据适配器,一个是自定义的 listView的item 风格xml,另一个是该风格xml文件里面的嵌套的GridView数据适配。...然后我们需要两个数据辅助类,类似上述,一个是专门来保存在GridView中要显示的每张图片的信息,例如它的url、name、id等等,暂称该辅助类为 UserImgs,大家可以随便增删,另一个是总的专门保存...listView中的item的数据,我们称它为UserInfo,这里,说明下,因为每条 item 都有一个自己的GridView,也就是说,UserInfo中必须要有一个UserImgs类实例,用来存储图片信息...,在不同的 item 上面 96 holder.gridView.setVisibility(View.GONE); 97 holder.gridView.setAdapter...     GridView 数据适配类的作用主要是把图片都显示到 GridView上面,再返回此 View,然后显示到 ListView 的 item 上面。

    2.4K50

    羊皮书APP(Android版)开发系列(二十)在Activity中响应ListView,GridView 内部按钮的点击事件

    业务稍微复杂一点的界面,在ListView,GridView等的Adapter中都会有内部按钮,需要处理内部按钮的点击事件。...而Adapter和Activity是分离的(不要将Adapter写在Activity里面),这时候,我们可以使用回调来实现Activity中响应ListView,GridView 内部按钮的点击事件。...在Adapter中定义一个接口(或在外面定义也可以) private Callback editCallback; public interface Callback { public...中的getView中设置点击事件 viewHolder.students_quality_delete_bt.setOnClickListener(new View.OnClickListener()...void click(View v){ L.e("响应按钮点击事件"); } ... } 通常点击事件都会带有一些参数,这个时候只要在接口Callback的click上直接加参数即可

    1.4K30

    【Kotlin Android】一个列表带你领略Kotlin简洁之风

    他们之间不能直接相互强制转化,必须调用以下方法进行转换,每个基础类型都带有以下方法: toByte(): Byte toShort(): Short toInt(): Int toLong(): Long...Kotlin基本使用 新建支持Kotlin的Android工程 如果你的Android Studio还不是3.0,那么需要下载Kotlin的插件和做一些相关的配置,请自行百度。...接下来就可以愉快的使用Kotlin玩耍啦,此处我们以一个列表页面来演示。 1. 首先,在activity_main.xml中,我们添加一个列表,id命名为listView: 在xml中声明好的id可以直接在Activity中使用,如上面的listView,无需在代码中再次去声明和定义,Kotlin会自动帮你映射。...在Java中,如果想要配置LayoutManager,需要调用listView的setLayoutManager()方法,在Kotlin中,我们只需直接将LayoutManager赋值给layoutManager

    1.9K10

    Flutter代码模板,解放双手,提高开发效率必备

    使用Flutter开发的朋友们都有一个疑问,自带的快捷提示不是很丰富,没有你想要的功能,不管是Android Studio 还是IDEA,斗狠有局限性,有的朋友可能在用VSCode,那个插件有两个,...为例,VSCode的代码模板有点麻烦,正在整理中) 首先打开github网址 https://github.com/AweiLoveAndroid/Flutter-learning/blob/master...,子控件带有边距 csv2 使用CustomScrollView + SliverGrid创建列表 gv 创建GridView.count lv 创建基本的ListView lvb 创建ListView.builder...lvd 创建带分割线的ListView lvr 创建RadioListTile,可以单选的item lvt 创建带有各种ListTile的ListView mainstf 创建 StatefulWidget...con创建完整的Container ---- 四、关于代码模板的使用和自定义方式可以看我的github Android Studio常用模板用法和自定义模板

    1.9K10

    Android – Drawable 详解

    Drawable倾向于在XML中定义,然后可以通过XML或Java代码应用于View。 有关Android的每个版本的默认Drawable列表,请参考androiddrawables网站。...列表中的每个drawable都按照列表的顺序绘制 - 列表中的最后一个drawable绘制在顶部。每个drawable由单个元素内的元素表示。...android:attr/textAppearanceLarge" /> 接下来,让我们在一个activity中设置基本的ListView xml: ListView android:id...现在,让我们将自己的样式添加到ListView。让我们添加一个默认的渐变和一个按下的渐变,改变项目之间的分隔线颜色,并在ListView周围添加一个边框。...接下来,让我们将边框和选择器状态添加到活动布局文件中的现有ListView: ListView ...

    5.4K50

    开始使用-编写你的第一个Flutter应用程序 顶

    Android Studio IDE 该codelab具有Android Studio IDE,但您可以使用其他IDE,或者从命令行运行。.../material.dart'; import 'package:english_words/english_words.dart'; 在您键入时,Android Studio会为您提供有关库导入的建议..._buildSuggestions函数每个词对调用_buildRow一次。 这个函数在ListTile中显示每个新对,这允许您在下一步中使行更具吸引力。...现在,添加生成ListTile行的代码。 ListTile的divideTiles()方法在每个ListTile之间添加水平间距。...实现一个有状态的小部件,为你的应用增加交互性。 用ListView和ListTiles创建一个延迟加载的无限滚动列表。 创建了一条路由并添加了在主路由和新路由之间移动的逻辑。

    9.5K20

    Android的ListView和RecyclerView的基本用法

    控件)来说,比如说ListView只能竖向滚动显示数据,不能横向滚动显示数据,在一些特殊的需求中,ListView就无能为力了。..."> ListView> 在主布局文件中,我们添加了一个ListView控件,用于接下来的数据显示,之后我们要新建一个布局文件用于显示ListView中的项目数据...否则就是只在父布局中声明,不添加进入父布局 * 这里我们当然不能加入父布局,因为我们的 View 是要加入 ListView 中作为子控件的 */...库中,并不是在SDK中,所以我们要进行依赖声明:在app中的build.gradle文件中加入以下代码: compile 'com.android.support:recyclerview-v7:25.1.1...这里我用的是android studio IDE 个人感觉android studio 相比eclipse在android开放方面好,不过android studio 对电脑性能要求更加高。

    1.1K50

    ListView详解

    ListView 针对每个item,要求 adapter“返回一个视图” (getView),也就是说ListView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到ListView...如果我们有几千几万甚至更多的item要显示怎么办?为每个Item创建一个新的View?不可能!!!...用convertView减少文件解析次数 Android系统本身为我们考虑了ListView的优化问题,在复写的Adapter的类中,比较重要的两个方法是getCount()和getView()。...,进行不断地解析每个节点:从最顶端的节点进行一层一层的解析查询,找到后在一层一层的返回,如果在左边没找到,就会接着解析右边,并进行相应的查询,直到找到位置。...但是当xml文件被解析的时候,只要被创建出来了,其孩子的id就不会改变了。根据这个特点,可以将孩子id存入到指定的集合中,每次就可以直接取出集合中对应的元素就可以了。

    1.2K60

    初识ListView

    之前我们学习的一些UI组件都比较简单,但是在实际开发中,会经常遇见列表界面设计,如通讯录、电话列表、信息列表等。那么从本节开始来详细学习列表界面设计。...一、了解ListView 在Android开发中,ListView是比较常用的控件,它以列表的形式显示具体内容,并且能够根据数据的长度自适应显示。...一旦在程序中获得了 ListView之后,接下来就需要为ListView设置它要显示的列表项了。...从上述示例程序发现,使用数组创建ListView非常简单,但这种ListView 能定制的内容很少,甚至连每个列表项的字号大小、颜色都不能改变。...如果想对ListView的外观、行为进行定制,就需要把ListView作为AdapterView使用,通过Adapter控制每个列表项的外观和行为。

    1.6K50

    Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面

    本文将会介绍整个Xamarin.Forms框架的核心和基础概念,包括: · 如何安装 Xamarin.Forms · 在 Visual Studio和Xamarin Studio中建立 Xamarin.Forms...其系统需求如下: · Windows 7 或更新的作业系统版本 · Java SDK · Android SDK · Xamarin.Android for Visual Studio 使用Xamarin...Forms开始编程 开发人员可以在Xamarin Studio和Visual Studio中创建 Xamarin.Forms的项目,有四种项目类型可以选择: Portable Library:用于代码共享的类库...子元素添加到容器中的顺序会影响子元素的Z-Order,上面的例子中会发现第一个添加的元素会被后面添加的元素遮住。...页面导航可以理解为一个后进先出的堆栈结构,展现一个页面相当于在堆栈中添加一个元素,如果需要回到前一个页面,就需要把当前的页面从堆栈中删除。

    13K70

    Android开发之自定义的ListView(UITableViewController)

    首先我们创建一个空的Activity,在Activity对应的xml文件中添加ListView标签。下方就是所添加的内容。...每个Cell上显示一个元素,在Android开发中,为了在ListView中显示数据,引入了数据适配器的概念,这个数据适配其其实就是对应着iOS开发中的TableViewCell。...,接下来,我们要为每个Cell上显示的数据定义一个数据实体类来表示Cell上的数据,这一点在开发中也是经常使用到的。...在自定义的ProductAdatper中我们还重写了getView方法,该方法返回的就是带有数据的Cell。...如果你想给每个Cell都加上点击事件,换句话说,你想在点击Cell时做一些事情,那么你需要为ListView的每个item添加点击事件,为每个Cell添加点击事件的代码如下所示,点击Cell是我们就使用

    1.4K80

    在android中资源文件夹中添加一个新的图片资源

    刚刚看了一下一个帧布局的简单Android示例,纠结了半天不知道如何将图片加到resource中的drawable中去。    ...比如在一个TestDemo的Res/drawable文件夹中,新添加一张图片资源要如何添加。    ...我直接将图片复制到bin\res\drawable-hdpi或者bin\res\drawable-mdpi中去,然后在eclipse中刷新图片仍然不显示。    ...上网找到了关于加载图片资源的问题解决办法: 直接拷贝需要添加的图片资源,然后在Res/drawable文件夹 右键点击 选择“粘贴”即可把图片拷贝进去。...下面是一个简单的帧布局Android应用实例,实现一只小鸟飞翔的动画效果,参考了《大话企业级Android应用开发实战》15.2.5帧布局(FrameLayout) P110-113页。

    3.1K20
    领券