[英]getting text from dynamically created edittext into a button android java
我已经在我的android应用程序上动态创建了edittext,如下所示:
protected void onCreate(Bundle savedInstanceState) {
RelativeLayout layout = (RelativeLayout) findViewById(R.id.linearLayout1);
final EditText[] Et = new EditText[10];
int prevTextViewId = 0;
int add = 0;
int add1 = 0;
for (int a = 0; a < Arr.length; a++) {
Et[a] = new EditText(this);
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(
(int) LayoutParams.WRAP_CONTENT,
(int) LayoutParams.WRAP_CONTENT);
param.leftMargin = 25;
param.topMargin = (a + 1) * (100 + add1);
Et[a].setPadding(5, 23, 5, 5);
Et[a].setLayoutParams(param);
Et[a].setSingleLine(false);
Et[a].setHorizontalScrollBarEnabled(false);
Et[a].setWidth(280);
Et[a].getText().toString();
layout.addView(Et[a]);
add = add + 25;
add1 = add1 + 15;
}
}
我想将动态创建的edittext中的文本放入如下所示的按钮中:
btn_doneAnswer = (Button) findViewById(R.id.btn_doneAnswer);
btn_doneAnswer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for (int a = 0; a < Arr.length; a++) {
Et[a] = new EditText(this);
String text += Et[a].getText().toString();
}
Bundle bundle = new Bundle();
Intent i_backToAddItem = new Intent(
AnswerActivityMultiText.this,
QuestionActivityDynamic.class);
bundle.putString("text", text);
bundle.putString("MultiQues", MultiQues);
i_backToAddItem.putExtras(bundle);
startActivity(i_backToAddItem);
}
});
但是我在下面这行的按钮onclick方法中遇到错误Et[a] = new EditText(this);
:
The constructor EditText(new View.OnClickListener(){}) is undefined
按钮onclick方法中此行+=
另一个错误:
Syntax error on token "+=", = expected
请建议我如何将动态创建的edittext中的文本输入按钮。
等待回复。
谢谢
您不必在onClick中再次初始化EditText。 您应该直接使用EditText对象获取文本。 所以线
Et[a] = new EditText(this);
完全不需要!
对于“ + =”运算符的错误,您需要声明字符串并在一行中使用operator(+ =)。 您必须将声明部分从for循环中分离出来,然后使用'+ ='。 这是完整的代码:
btn_doneAnswer = (Button) findViewById(R.id.btn_doneAnswer);
btn_doneAnswer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String text;
for (int a = 0; a < Arr.length; a++) {
text += Et[a].getText().toString();
}
Bundle bundle = new Bundle();
Intent i_backToAddItem = new Intent(
AnswerActivityMultiText.this,
QuestionActivityDynamic.class);
bundle.putString("text", text);
bundle.putString("MultiQues", MultiQues);
i_backToAddItem.putExtras(bundle);
startActivity(i_backToAddItem);
}
});
您的问题在于以下几行:
for (int a = 0; a < Arr.length; a++) {
Et[a] = new EditText(this);
String text += Et[a].getText().toString();
}
在这一行:
Et[a] = new EditText(this);
这是onClickListener对象,您必须具有class.this(其中class是创建此代码的文件的类名)。
在另一行中:
String text += Et[a].getText().toString();
您总是创建一个新的String,而不是创建一个,而是进行添加。 这是Java概念的失败。
您必须这样做:
String text = "";
for (int a = 0; a < Arr.length; a++) {
Et[a] = new EditText(class_name.this);
text += Et[a].getText().toString();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.