Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击按钮时创建编辑文本_Java_Android_Xml - Fatal编程技术网

Java 单击按钮时创建编辑文本

Java 单击按钮时创建编辑文本,java,android,xml,Java,Android,Xml,我想创建一个onclick事件,该事件创建一个EditText。我尝试了以下代码,但它删除了所有内容,并使用EditText创建了一个新布局 public class MainActivity extends Activity { ArrayList<Contact> contact; Contact currentcontact; EditText nameArea,emailArea,phoneArea; int emails=1; in

我想创建一个
onclick
事件,该事件创建一个
EditText
。我尝试了以下代码,但它删除了所有内容,并使用
EditText
创建了一个新布局

public class MainActivity extends Activity {

    ArrayList<Contact> contact;
    Contact currentcontact;
    EditText nameArea,emailArea,phoneArea;
    int emails=1;
    int phones=1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        nameArea=findViewById(R.id.name_area);
        emailArea=findViewById(R.id.e1);
        phoneArea=findViewById(R.id.p1);
        contact=new ArrayList<>();
    }

    public void buttonclick(View v){
        if(v.getId()==R.id.addemail){
            createemaileditview();
        }
        if(v.getId()==R.id.addphone){
            createphoneeditview();
        }
        if(v.getId()==R.id.save){

        }
        if(v.getId()==R.id.cancel){
        }

    }
    protected void createemaileditview(){
        LinearLayout outerLayout=new LinearLayout(this);
        outerLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT));
        outerLayout.setOrientation(LinearLayout.VERTICAL);
        EditText email=new EditText(this);
        email.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT,1f));
        outerLayout.addView(email);
        setContentView(outerLayout);
        emails++;
    }
    protected void createphoneeditview(){
        phones++;
    }
}
公共类MainActivity扩展活动{
ArrayList接触;
触点电流触点;
编辑文本名称区、电子邮件区、电话区;
int=1;
int=1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameArea=findViewById(R.id.name\u区域);
emailArea=findViewById(R.id.e1);
phoneArea=findViewById(R.id.p1);
contact=newarraylist();
}
公共无效按钮单击(视图v){
if(v.getId()==R.id.addemail){
createemaileditview();
}
if(v.getId()==R.id.addphone){
createphoneeditview();
}
if(v.getId()==R.id.save){
}
if(v.getId()==R.id.cancel){
}
}
受保护的void createemaileditview(){
LinearLayout outerLayout=新的LinearLayout(本);
outerLayout.setLayoutParams(新的LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_父项,LinearLayout.LayoutParams.MATCH_父项));
外部布局。设置方向(线性布局。垂直);
EditText电子邮件=新的EditText(此);
email.setLayoutParams(新的LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_父项,LinearLayout.LayoutParams.WRAP_内容,1f));
outerLayout.addView(电子邮件);
setContentView(外部布局);
电子邮件++;
}
受保护的void createphoneeditview(){
电话++;
}
}

您的代码中有一个小错误。通过调用
setContentView(outerLayout)
将主活动布局替换为outerLayout。通过将editText添加到主活动布局中,而不是创建新布局并替换所有现有内容,您可以获得所需的功能。
有关完整代码,请参见链接

如果您只需要创建一个EditText,或者希望轻松控制设计,则最好使用View.invisible在开始时将其保持为不可见,而不是按View.gone。有了这个,你的设计就变得简单了

来自安卓

这个视图是不可见的,它不占用任何空间 布局目的

View.INVISIBLE此视图是不可见的,但仍会占用空间 布局目的