Java 在一个文本视图中按下按钮后,如何显示多个EditText输入?

Java 在一个文本视图中按下按钮后,如何显示多个EditText输入?,java,android,android-edittext,Java,Android,Android Edittext,我刚刚开始学习如何制作应用程序。我想做一个应用程序,应该显示随机输入的任务为用户做。首先,用户应该选择要创建多少任务,然后在EditText中写下任务。我能够创建特定数量的EditText,但我不知道如何在按下按钮后显示所有EditText输入。我有很多版本的代码,但没有一个可以工作。我被卡住了,我需要建议 这是我的第二个活动的代码版本之一 public class TaskActivity extends AppCompatActivity { LinearLayout containerL

我刚刚开始学习如何制作应用程序。我想做一个应用程序,应该显示随机输入的任务为用户做。首先,用户应该选择要创建多少任务,然后在EditText中写下任务。我能够创建特定数量的EditText,但我不知道如何在按下按钮后显示所有EditText输入。我有很多版本的代码,但没有一个可以工作。我被卡住了,我需要建议

这是我的第二个活动的代码版本之一

public class TaskActivity extends AppCompatActivity {

LinearLayout containerLayout;
TextView receiverTV;
TextView tv;
TextView displayTaskTv;

EditText et;

Button btn;
Button randomTaskBtn;

int i = 0;
int size;

String inputEditText;
String inputTextView;

String stringsEt[];
String stringsTv [];


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_task);
    containerLayout = (LinearLayout) findViewById(R.id.linear_layout);


    receiverTV = (TextView) findViewById(R.id.receiver_textView);


    Intent intent = getIntent();
    int number = intent.getIntExtra("Number", defaultValue);
    receiverTV.setText("You have chosen to add: " + number + " tasks!");

    createEtTvBtn(number);
    createBtn();
    createTextView();

}

public void createEtTvBtn(int number) {

    for (i = 1; i <= number; i++) {
        tv = new TextView(this);
        tv.setText("Task nr: " + i);
        tv.setPadding(16, 16, 16, 16);
        tv.setTextColor(Color.parseColor("#008b50"));
        tv.setTextSize(20);
        tv.setId(i + value);
        containerLayout.addView(tv);


        et = new EditText(this);
        et.setHint("Enter task nr: " + i);
        et.setId(i + value);
        et.setLines(2);
        containerLayout.addView(et);

        btn = new Button(this);
        btn.setText("Confirm task nr: " + i);
        btn.setId(i + value);
        containerLayout.addView(btn);

        final List<EditText> allEditText = new ArrayList<EditText>();
        final List<TextView>allTextView = new ArrayList<TextView>();
        final List<Button>allButton = new ArrayList<Button>();

        String[] stringsEditText = new String[(allEditText.size())];
        String[] stringsTextView = new String[(allTextView.size())];
        String[] stringsBtn = new String[(allButton.size())];


        for(int i=0; i < allEditText.size(); i++){
            stringsEditText[i] = allEditText.get(i).getText().toString();

        }
        for (int i=0; i < allTextView.size(); i++) {
            stringsTextView[i] = allTextView.get(i).getText().toString();
            size = allTextView.get(i).getText().toString().length();
        }
        for(int i=0; i < allButton.size(); i++){
            stringsBtn[i] = allButton.get(i).getText().toString();

        }

        allTextView.add(tv);

        allEditText.add(et);

        allButton.add(btn);

        allButton.get(0).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                inputEditText = allEditText.get(0).getText().toString();
                stringsEt = new String[] {allEditText.get(0).getText().toString()};


                if (inputEditText.length() > 0) {
                allTextView.get(0).setText(inputEditText);

                    allEditText.add(allEditText.get(0));
                    allEditText.get(0).setText("");

                    }
                    else if (inputEditText.length() ==0){
                    Toast.makeText(TaskActivity.this, "You need to write down your task", Toast.LENGTH_LONG).show();
                    }
                inputTextView = allTextView.get(0).getText().toString();
                stringsTv = new String[] {allTextView.get(0).getText().toString()};
                if (inputTextView.length() > 0) {
                    allTextView.get(0).getText();
                    allTextView.add(allTextView.get(0));
                }
            }
        });

    }
}

    private Button createBtn() {
    randomTaskBtn = new Button(this);
    randomTaskBtn.setText("Task");
    containerLayout.addView(randomTaskBtn);

        randomTaskBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


            double luckyTask = Math.random();
            luckyTask *=size;
            int luckyIndex = (int)luckyTask;
            displayTaskTv.setText(stringsTv[luckyIndex]);
                }
        });
        return randomTaskBtn;

            }
    private TextView createTextView() {
    displayTaskTv = new TextView(this);
    displayTaskTv.setTextSize(20);
    displayTaskTv.setTextColor(Color.parseColor("#dd2626"));
    displayTaskTv.setText("");
    containerLayout.addView(displayTaskTv);
        return displayTaskTv;

}

}
公共类TaskActivity扩展了AppCompative活动{
线性布局集装箱布局;
TextView-receiverTV;
文本视图电视;
文本视图显示任务电视;
编辑文本;
按钮btn;
按钮随机任务BTN;
int i=0;
整数大小;
字符串输入文本;
字符串输入文本视图;
字符串集[];
字符串stv[];
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_任务);
容器布局=(线性布局)findViewById(R.id.linear\U布局);
receiverTV=(TextView)findviewbyd(R.id.receiver\u TextView);
Intent=getIntent();
int number=intent.getIntExtra(“number”,默认值);
receiverTV.setText(“您已选择添加:“+number+”任务!”);
createtTtVbtn(数字);
createBtn();
createTextView();
}
公共无效CreateTTvTn(整数){
对于(i=1;i 0){
allTextView.get(0).setText(InputItemText);
allEditText.add(allEditText.get(0));
allEditText.get(0.setText)(“”);
}
else if(InputItemText.length()=0){
Toast.makeText(TaskActivity.this,“您需要写下您的任务”,Toast.LENGTH_LONG.show();
}
inputTextView=allTextView.get(0.getText().toString();
stringsTv=新字符串[]{allTextView.get(0.getText().toString()};
如果(inputTextView.length()>0){
获取(0.getText();
allTextView.add(allTextView.get(0));
}
}
});
}
}
专用按钮createBtn(){
randomTaskBtn=新建按钮(此按钮);
随机任务btn.setText(“任务”);
containerLayout.addView(随机任务BTN);
randomTaskBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
double-luckyTask=Math.random();
幸运任务*=大小;
int-luckyIndex=(int)luckyTask;
displayTaskTv.setText(stringsTv[luckyIndex]);
}
});
返回随机任务BTN;
}
私有TextView createTextView(){
displayTaskTv=新文本视图(此);
displayTaskTv.setTextSize(20);
displayTaskTv.setTextColor(Color.parseColor(“#dd2626”));
displayTaskTv.setText(“”);
containerLayout.addView(displayTaskTv);
返回显示任务电视;
}
}
谢谢你的建设性建议


我确信我的代码是一团糟。我想创造更多的方法,但没有成功

这是你应该做的

第1步- 创建多个编辑文本,并将它们存储在
ArrayList
中,比如
myEditTextList

步骤2-从所有编辑文本中获取数据

String str = ""
for(EditText et: myEditTextList) {
   str += et.getText().toString();
}

步骤3-在
str
中显示数据,无论您想在哪里。

您想动态创建EditText和按钮,并通过单击分配给特定EditText的每个按钮来获取文本吗?如果我答对了,告诉我继续看,这是对的。单击“确认任务”按钮后,我可以在TextView中显示EditText输入。我想再添加一个按钮,它将在新活动的一个新文本视图中显示所有文本视图中的文本。达到该级别后,我希望随机显示其中一个任务。我希望以编程方式创建EditText,因为EditText的数量取决于用户。用户选择要添加多少任务。每个任务都是独立的文本。在MainActivity中,用户可以选择任务数量。在TaskActivity中,我根据用户编号选择的内容创建EditText、TextView和Button。我可以从EditText获取输入,并通过按按钮在TextView中显示它。不幸的是,我失去了在一个文本视图中显示所有EditText文本的希望。谢谢!我会努力在一瞬间做到这一点。我制作了一个简单版本的应用程序,你的代码真的很有效。再次感谢你。嗨,阿披舍克,我能再问你一个问题吗?@Marzena,当然!如果解决了您的问题,请接受此答案。我想保存编辑文本输入。我应该使用共享引用吗?