如何在一个TextView中按下Button后显示多个EditText输入?

时间:2017-03-23 16:21:41

标签: java android android-edittext

我正在学习如何制作应用程序。我想创建一个应该显示随机输入的任务为用户做的应用程序。首先,用户应选择要创建的任务数,然后在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;

}

}

感谢您提出任何建设性意见。

我确信我的代码很乱。我想创造更多的方法,但我没有成功。

1 个答案:

答案 0 :(得分:0)

这是你应该做的

第1步 - 创建多个EditTexts并将其中的每一个存储在ArrayListmyEditTextList

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

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

步骤3-在str中随时随地显示数据。