如何从多个edittext计算填充的编辑文本

时间:2018-03-29 17:08:48

标签: java android arrays arraylist

在我的应用程序中有20个编辑文本,但我想计算填充的编辑文本,并且数据通过数组进行其他活动。就像我从20个填充3个编辑文本时那样,3个编辑文本数据进入下一页,3个计数作为int进入下一页。

这是我的第一个java课程

// pseudo
let a = {prop1: 'a', prop2: 'b', prop3: 'c'}
_.pickAs(a, {prop1: 'first', prop3: 'second'}
// {first: 'a', second: 'c'}

当我点击下一页提交20 show作为int。我想发送3data和3作为int。 请帮帮我

2 个答案:

答案 0 :(得分:0)

正如您在评论中要求提供样本一样,我正在用样本发布我的答案。 在提交按钮的onclicklistener中,您可以添加以下代码。

myNoneEmptyEdittextCounter = 0;
for (int i=1;i<=no;i++)
{
    myEt = (EditText) findViewById(i);
    if(!TextUtils.isEmpty(myEt.getText().toString()))
    {
        myNoneEmptyEdittextCounter +=1;
    }
}
//myNoneEmptyEdittextCounter is count of your filled edittexts

答案 1 :(得分:0)

此方法将返回数据列表,其大小将为您提供所需的int,即填充项的数量。

在提交按钮中单击

submit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        if(edittextValues().isEmpty()) {
             //nothing has been filled
        } else {
             //items in edittextValues() are your data.
             edittextValues().size();//this is your int which is number of edit text filled.
        }

    }
}

我在评论中已经提到了每个步骤的作用。希望这会有所帮助。

方法 edittextValues()

ArrayList<String> edittextValues() {

    ArrayList<String> filledData = new ArrayList<>(); //initialise empty string array.        

    for (int i=1; i<=20; i++){ //loop through ids from 1 to 20

        for (int j = 0; j< layout.getChildCount(); j++) { //loop through all the children of root layout

            if(layout.getChildAt(j) instanceof EditText) { //filter EditText

                EditText editText = (EditText) layout.getChildAt(j); 

                if(editText.getId() == i) { // filter the one which u programmatically added
                    if(!editText.getText().toString().isEmpty()) { // check if its not empty, that's the one you are looking
                        filledData.add(editText.getText().toString()); //add it to the list
                    }
                }
            }
        }
    }

    return filledData; //return string list
}