以编程方式显示动态用户输入

时间:2017-03-04 00:27:07

标签: java android android-edittext

我刚开始学习Android应用程序开发以及java,我有点困惑如何让它工作。我使用以下tablelayout在UI中创建了用户输入字段:

    public void inputRow( TableLayout tl, String label, int inputSize, int inputID )
    {
        TableRow inputRow = new TableRow(this);
        TextView tv = new TextView(this);
        EditText edit = new EditText(this);

        // some margin
        inputRow.setPadding( 20,10,20,0);
        tv.setText(label);
        edit.setMaxWidth( inputSize*7)  ;
        edit.setMinimumWidth(inputSize*7);
        edit.setId( inputID );
        edit.setGravity(Gravity.RIGHT);
        inputRow.addView(tv);
        inputRow.addView(edit);

        tl.addView(inputRow);
    }

然后我用以下内容填写了inputRows:

inputRow( myTableLayout, "Name", 30, 10000);
inputRow( myTableLayout, "Last Name", 20, 10001);
inputRow( myTableLayout, "Age", 3, 10002);
inputRow( myTableLayout, "Street Address", 20, 10003);
inputRow( myTableLayout, "State", 15, 10004);

创建了按钮

 Button btAccept = new Button(this);
        btAccept.setText( "Save");
        btAccept.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v)
            {

                alertDialog.show();

            }
        });

警报对话:

final AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Save");
alertDialog.setMessage("Saved..");

而不仅仅是显示"已保存..."在警报对话框中,如何让用户在点击按钮后显示用户提交的实际信息?虽然我为每个输入行设置了id,但我不确定如何实际检索它们。对我来说,最重要的是还要将所有输入放在一个aray中然后显示吗?

修改 我一直在网上搜索可能的解决方案,想想我可能需要从myTableLayout查看每个TableRow。

TableRow row1 = (TableRow)myTableLayout.getChildAt(0);
TextView tv1 = (TextView) row1.getChildAt(0);
String input = tv1.getText().toString(); 

我想也许我可以从我的表中访问第一行来检索textview输出。但它仍然无法奏效。我真的以为我可以使用每个editText设置的id来访问每一行,但我尝试的任何工作都没有。

2 个答案:

答案 0 :(得分:1)

在类中创建EditText的ArrayList,并在创建行时将editText对象放入其中。

List<EditText> editTextList = new ArrayList<>();

在inputRow(.....)方法中

//your code
EditText edit = new EditText(this);
editTextList.add(edit);

获取arrayList中每个输入的Text并在警告对话框中显示它:

String message = "Saved: ";
for(EditText edit:editTextList) {
   message+=edit..getText().toString()+" ";
}
alertDialog.setMessage(message);

答案 1 :(得分:0)

您是否尝试过使用

更改已保存..
alertDialog.setMessage("Name, 30, 10000");

或您需要显示它们的任何其他方式?