Android 动态生成 EditTest
这几天,开始一个项目,需要一个小效果,就是一个输入邮箱地址的EditTest 需要动态的添加。默认有两个,然后最多5个,手机的屏幕总是有限的
好的 ,这就上代码了
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:orientation="vertical"> <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <LinearLayout
android:id="@+id/layout_ll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"> <EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="1"/> <EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="2"/> </LinearLayout> <Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="添加"
android:onClick="onInsert"/> <Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="最后一个Edit的数据"
android:onClick="onLast"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="倒数第二个Edit的数据"
android:onClick="onFast"/> </LinearLayout>
这里时用一个有ID 的 LinearLayout 后面拿到它,向它加入EditTest 就OK了。
java 代码
package com.quseit.listedit.listedit; import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast; public class MainActivity extends ActionBarActivity {
private LinearLayout layout_ll;
private int edit_i=0;
private String[] Param; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
} public void initView(){
layout_ll=(LinearLayout)findViewById(R.id.layout_ll);
} public void setEdit(){
EditText edit_l=new EditText(this);
edit_i++;
edit_l.setTag(edit_i);
edit_l.setHint(edit_i + "");
edit_l.setText(edit_i + "zheshi");
layout_ll.addView(edit_l);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId(); //noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
} return super.onOptionsItemSelected(item);
} public void onInsert(View v){
setEdit();
} public void onLast(View v){
int i=layout_ll.getChildCount();
EditText e =(EditText)layout_ll.getChildAt(i-1);
Toast.makeText(this,e.getText().toString()+":"+i,Toast.LENGTH_SHORT).show(); }
public void onFast(View v){
int i=layout_ll.getChildCount();
EditText e =(EditText)layout_ll.getChildAt(i-2);
Toast.makeText(this,e.getText().toString()+":"+i,Toast.LENGTH_SHORT).show();
} public void getEditstr(){
int edit_i=layout_ll.getChildCount();
if(edit_i>0) {
for (int i = 0; i < edit_i; i++) {
EditText edit = (EditText) layout_ll.getChildAt(i);
}
} } }
其实,实现还是很简单的,只需要 getChildAt() 一下 拿到 LinearLayout里面的 节点 注意LinearLayout最好只放EditTest
Android 动态生成 EditTest的更多相关文章
- Android 动态生成布局 (多层嵌套)
Android 除了能够载入xml文件,显示布局外,也能够代码生成布局,并通过setContentView(View view)方法显示布局.单独的一层布局,如一个主布局加一个控件(如Button\i ...
- Android 动态生成对话框和EditText
/** * (获取输入) */ private void showInputDialog() { ScrollView scrollview = getInitView() ; final Linea ...
- Android 通过Java代码生成创建界面。动态生成View,动态设置View属性。addRules详解
废话不多说,本文将会层层深入给大家讲解如何动态的生成一个完整的界面. 本文内容: Java代码中动态生成View Java代码中动态设置View的位置,以及其他的属性 LayoutParams详解 一 ...
- Android动态类生成预加载-dexmaker使用
一.dexmaker简单介绍 dexmaker是运行在Android Dalvik VM上,利用Java编写,来动态生成DEX字节码的API.如果读者了解AOP编程的话,应该听说过cglib or A ...
- Java多种方式动态生成doc文档
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5280272.html 本来是要在Android端生成doc的(这需求...),最后方法没有好的方法能够在An ...
- [转载] Android动态加载Dex机制解析
本文转载自: http://blog.csdn.net/wy353208214/article/details/50859422 1.什么是类加载器? 类加载器(class loader)是 Java ...
- Android 动态加载 (二) 态加载机制 案例二
探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法 重要说明 在实践的过程中大家都会发现资源引用的问题,这里重点声明两点: 1. 资源文件是不能直接inflate的,如果简单的话直接在程序 ...
- Android 动态加载 (一) 态加载机制 案例一
在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本 ...
- Android动态加载技术初探
一.前言: 现在,已经有实力强大的公司用这个技术开发应用了,比如淘宝,大众点评,百度地图等,之所以采用这个技术,实际上,就是方便更新功能,当然,前提是新旧功能的接口一致,不然会报Not Found等错 ...
随机推荐
- 点击弹出li所在的序列号
最近在研究一个图片替换功能,及点击左侧商品在右侧弹出层修改图片后,同时左侧的图片也得跟着修改. 我原来考虑的添加ID作为唯一值.但当ID重复了,替换就出BUG了. 最后问公司同事,然后给提供了 根据点 ...
- 网易蜂巢微服务架构:用RabbitMQ实现轻量级通信
本次分享内容由三个部分组成: 微服务架构与MQ RabbitMQ场景分析与优化 RabbitMQ在网易蜂巢中的应用和案例分享 1微服务架构与MQ 微服务架构是一种架构模式,它将单体应用划分成一组微小的 ...
- LCIS
传送门 http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=726&pid=1003 分析:这道题依然是动态 ...
- Alpha阶段第七次Scrum Meeting
情况简述 Alpha阶段第七次Scrum Meeting 敏捷开发起始时间 2016/10/28 00:00 敏捷开发终止时间 2016/10/29 00:00 会议基本内容摘要 跟助教进行了交流,明 ...
- nginx中的超时设置
nginx使用proxy模块时,默认的读取超时时间是60s. 1. send_timeout syntax: send_timeout the time default: send_timeout 6 ...
- ypzl药品质量不合格数据库-excel自动排版
原创: qq:231469242 import xlrdimport pandas,numpyimport matplotlib.pyplot as pltimport pandas as pd #参 ...
- tnt_esri.dat Arcgis8.1安装license
arcgis8.1授权文件内容,复制个txt重命名为tnt_esri.dat即可.注意替换yourcomputername为你的计算机名 SERVER yourcomputername ESRI_ ...
- 裁剪要素出现错误 :HRESULT:0x80040239
pFeatureBuffer = pOutFeaCls.CreateFeatureBuffer(); pFeatureCursor = pOutFeaCls.Inser ...
- web service 学习
是什么? 是一种远程调用技术,这种技术提供一些接口,这些接口实现让客户端和服务端进行通信和数据交换,并且让通信和交换与平台和开发语言无关.也可以说是提供了许多函数.客户端调用服务端的函数. 远程调用: ...
- ExtJs 实现表单联动
最近做的项目使用Extjs.遇到表单联动的业务.下面来说说主要实现思想: 说明:表单联动一般存在从属关系,有大范围的对象和大范围中的小对象.比如地理位置的选定(例:浙江省-杭州市-某某县).在这里,我 ...