计算填充的EditText字段

时间:2018-09-20 06:42:00

标签: java android android-edittext

我正在构建一个具有多个EditText字段和Button 的应用。
有关信息,应该根据已填充的Button字段,Activity打开一个新的EditText(我还没有打开),

所以,让我们假设
1)如果第三个Editext字段具有某个值,则该按钮将打开第三个Activity
2)如果第四个Editext字段具有某个值,则按钮将打开第四个Activity
并且每EditText个字段都会继续。

问题是,如何计算填充的editText字段?

5 个答案:

答案 0 :(得分:3)

您可以像这样在“活动”中执行此操作。但是您必须添加

在布局的所有Edittext字段中

long numberOfFilledFields = Stream.of( editText1.getText().toString(), editText2.getText().toString(), editText3.getText().toString()) //you can add as many as you want here .filter(s -> !s.isEmpty()) .count(); switch (numberOfFilledFields) { case 0: //start activity 1 break; case 1: //start activity 2 break; . . . } 。.相应地在代码中更改父布局类型。它按测试方式工作。

android:tag="et"

基于计数,您可以做出决定。

答案 1 :(得分:1)

我目前没有Android SDK,因此可能会出现一些错误,但是您可以尝试执行以下操作:-

res.render('view-name', data)

答案 2 :(得分:1)

环绕您的EditText对象并知道它是否有价值;

例如,

EditText e1 = ....
EditText e2 = .....
.
.
.
EditText e10 = .....
EditText allText[] = new EditText[]{e1, e2, ...e10};
int filled = 0;
for(int i = 0; i < allText.length; i++) {
    if(!allText[i].getText().toString().isEmpty())
        filled++;
}

因此,您的填充数具有计数。

答案 3 :(得分:1)

您可以使用一些标志来设置已填充editText字段的数量。

将所有editText引用添加到List。并使用以下方法获取计数。

int count =0;
private int getEditTextViewCount(List<EditText> editTexts){
    for(EditText editText : editTexts){
        if(!editText.getText().toString().isEmpty()){
            count++;
        }
    }
    return count;
}

答案 4 :(得分:1)

正如您所强调的如何在countFilledFileds()方法下面获取填充字段计数将为您提供帮助。据我了解,您的问题将是完整的解决方案。

public class SampleActivity extends AppCompatActivity {

private EditText editText1,editText2,editText3,editText4;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sample);

    Button btn = findViewById(R.id.btn);
    editText1 = findViewById(R.id.editText1);
    editText2 = findViewById(R.id.editText2);
    editText3 = findViewById(R.id.editText3);
    editText4 = findViewById(R.id.editText4);


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

            int filledFileds = countFilledFields();
            Log.d("filled", String.valueOf(filledFileds));
            Class newClass = SampleActivity.class;

            switch (filledFileds){
                case 1:

                    newClass = Activity1.class;

                    break;

                case 2:

                    newClass = Activity2.class;

                    break;

                case 3:

                    newClass = Activity3.class;

                    break;

                case 4:

                    newClass = Activity4.class;

                    break;

                default:


            }

            Intent intent = new Intent(SampleActivity.this, newClass);
        }
    });
}

private int countFilledFields() {

    ArrayList<EditText> editTexts = new ArrayList<>();
    editTexts.add(editText1);
    editTexts.add(editText2);
    editTexts.add(editText3);
    editTexts.add(editText4);

    int filledNumber = 0;

    for(int i = 0;i < editTexts.size() ;i++){

        if(editTexts.get(i).getText()!=null && !editTexts.get(i).getText().toString().matches("")){
            filledNumber += 1;
        }

    }
    return filledNumber;
}
}