• 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 

  • 相关阅读:
    YUV图片旋转
    mac http&git代理配置
    iOS 如何保持线程一直在运转
    iOS 后台录音Tweak实现参考--stackoverflow
    NSTimer的精确度
    svn递归添加目录下面所有文件
    利用instruments工具查看其它app的性能
    iOS符号表手工还原
    Hbase的安装测试工作
    Hadoop集群中pig工具的安装过程记录
  • 原文地址:https://www.cnblogs.com/spyrx7/p/4238252.html
Copyright © 2020-2023  润新知