Android 在内部类中添加EditText
我想从按钮Android 在内部类中添加EditText,android,Android,我想从按钮onClick侦听器向当前活动(MainActivity.java&Activity_main.xml)添加一个EditText,我不知道如何通过代码获得布局,我已经尝试过了,但没有成功 package com.example.hythm.ui_practise; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import andr
onClick
侦听器向当前活动(MainActivity.java&Activity_main.xml)添加一个EditText
,我不知道如何通过代码获得布局,我已经尝试过了,但没有成功
package com.example.hythm.ui_practise;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button PlusButton=(Button) findViewById(R.id.ButtonOpPlus);
final Button ButtonNo1=(Button) findViewById(R.id.no1);
final Button ButtonNo2=(Button) findViewById(R.id.no2);
final Button ButtonNo3=(Button) findViewById(R.id.no3);
final Button ButtonNo4=(Button) findViewById(R.id.no4);
final Button ButtonNo5=(Button) findViewById(R.id.no5);
final Button ButtonNo6=(Button) findViewById(R.id.no6);
final Button ButtonNo7=(Button) findViewById(R.id.no7);
final Button ButtonNo8=(Button) findViewById(R.id.no8);
final Button ButtonNo9=(Button) findViewById(R.id.no9);
final TextView ResultTextView=(TextView)findViewById(R.id.Result);
final Button CalculateButton=(Button) findViewById(R.id.Calculate);
final TextView tempv=new TextView(this);
CalculateButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText NoOfInputsEditText=(EditText)findViewById(R.id.NoOfInputs);
int size = Integer.parseInt(NoOfInputsEditText.getText().toString()); // total number of TextViews to add
**RelativeLayout myLayout=(RelativeLayout)R.layout.activity_main;
EditText newEditText=new EditText(getBaseContext());
myLayout.addView(newEditText);**
}
}
);
}
}
在进行修复之前,还有一个非常简单的解决方案 单击按钮(CalculateButton)时需要编辑文本的任何方式,因此在xml本身中创建一个编辑文本视图,在屏幕中需要编辑文本的任何位置创建该视图,并将“可见性”设置为“消失” 单击CalculateButton时,仅显示编辑文本 例:
在进行修复之前,还有一个非常简单的解决方案 单击按钮(CalculateButton)时需要编辑文本的任何方式,因此在xml本身中创建一个编辑文本视图,在屏幕中需要编辑文本的任何位置创建该视图,并将“可见性”设置为“消失” 单击CalculateButton时,仅显示编辑文本 例:
如果要在按钮上的版面中添加多个EditText,可尝试以下操作:
// root_layout is the relative layout
final RelativeLayout layout = findViewById(R.id.root_layout);
findViewById(R.id.test_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout.LayoutParams[] params = new RelativeLayout.LayoutParams[4];
EditText[] dynamicEditText = new EditText[4];
for (int i = 1; i < 4; i++) {
params[i] = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
dynamicEditText[i] = new EditText(MainActivity.this);
dynamicEditText[i].setId(i);
dynamicEditText[i].setText("Edit Text "+i);
if (i > 1) {
params[i].addRule(RelativeLayout.BELOW, dynamicEditText[i - 1].getId());
}
dynamicEditText[i].setLayoutParams(params[i]);
layout.addView(dynamicEditText[i]);
}
}
});
}
//root\u布局是相对布局
最终RelativeLayout布局=findViewById(R.id.root\u布局);
findviewbyd(R.id.test_按钮).setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
RelativeLayout.LayoutParams[]params=新的RelativeLayout.LayoutParams[4];
EditText[]dynamicEditText=新的EditText[4];
对于(int i=1;i<4;i++){
params[i]=新的RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.WRAP_内容);
dynamicEditText[i]=新编辑文本(MainActivity.this);
dynamiceditext[i].setId(i);
动态文本[i].setText(“编辑文本”+i);
如果(i>1){
params[i].addRule(RelativeLayout.BELOW,dynamicEditText[i-1].getId());
}
DynamicEdit[i].setLayoutParams(params[i]);
layout.addView(dynamicEditText[i]);
}
}
});
}
如果要在按钮上的版面中添加多个编辑文本,请单击,您可以尝试以下操作:
// root_layout is the relative layout
final RelativeLayout layout = findViewById(R.id.root_layout);
findViewById(R.id.test_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout.LayoutParams[] params = new RelativeLayout.LayoutParams[4];
EditText[] dynamicEditText = new EditText[4];
for (int i = 1; i < 4; i++) {
params[i] = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
dynamicEditText[i] = new EditText(MainActivity.this);
dynamicEditText[i].setId(i);
dynamicEditText[i].setText("Edit Text "+i);
if (i > 1) {
params[i].addRule(RelativeLayout.BELOW, dynamicEditText[i - 1].getId());
}
dynamicEditText[i].setLayoutParams(params[i]);
layout.addView(dynamicEditText[i]);
}
}
});
}
//root\u布局是相对布局
最终RelativeLayout布局=findViewById(R.id.root\u布局);
findviewbyd(R.id.test_按钮).setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
RelativeLayout.LayoutParams[]params=新的RelativeLayout.LayoutParams[4];
EditText[]dynamicEditText=新的EditText[4];
对于(int i=1;i<4;i++){
params[i]=新的RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.WRAP_内容);
dynamicEditText[i]=新编辑文本(MainActivity.this);
dynamiceditext[i].setId(i);
动态文本[i].setText(“编辑文本”+i);
如果(i>1){
params[i].addRule(RelativeLayout.BELOW,dynamicEditText[i-1].getId());
}
DynamicEdit[i].setLayoutParams(params[i]);
layout.addView(dynamicEditText[i]);
}
}
});
}