【问题标题】:How to check listview row Edittexts are empty or not when click submit button? [closed]单击提交按钮时如何检查listview行Edittext是否为空? [关闭]
【发布时间】:2015-12-24 07:38:57
【问题描述】:

我有ListView,使用适配器类填充行。在行中我有EditText。现在,当我在活动中单击提交按钮时,我需要检查所有行编辑文本是否为空。如果任何EditText 为空,我想显示吐司消息。如何实现这一点。小代码sn -p 需要。

【问题讨论】:

  • 请分享您尝试过的小代码sn-p。我们可以帮助您添加代码。
  • 查看对应位置的edittext数据长度即可。

标签: android listview button android-edittext


【解决方案1】:

我认为最简单的方法是
- 每当用户将数据输入ObjectList 时,您就将数据存储在EditText
- 然后点击提交Button时,只需检查Object是否为空

或者

您可以按位置找到ListView中的每个项目(行)

 public View getViewByPosition(int pos, ListView listView) {
        final int firstListItemPosition = listView.getFirstVisiblePosition();
        final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

        if (pos < firstListItemPosition || pos > lastListItemPosition ) {
            return listView.getAdapter().getView(pos, null, listView);
        } else {
            final int childIndex = pos - firstListItemPosition;
            return listView.getChildAt(childIndex);
        }
    }

然后在每一行中找到EditText

EditText editText  = getViewByPosition(pos,listView).findViewById(R.id.editext_id);

最后检查是否为空

if(editText.getText().length == 0){
        // EditText is empty, display toast here
        Toast.makeText("","");
}

希望有帮助

【讨论】:

  • 不错的答案...谢谢您的帮助
  • 很高兴听到这个消息:D
【解决方案2】:

类似的东西

EditText usernameEditText = (EditText) findViewById(R.id.editUsername);
sUsername = usernameEditText.getText().toString();
if (sUsername.matches("")) {
    Toast.makeText(this, "You did not enter a username", Toast.LENGTH_SHORT).show();
    return;
}

这是一个例子。当然,您需要先从您的行中获取此 EditText。

【讨论】:

    【解决方案3】:

    遍历listview的item,从listview item中通过id获取TextView并检查其文本的长度

    你可以像下面这样Link得到listview项

    for(int i = 0; i<listview.getCount(); i++){
            TextView tv = ((View)listview.getViewByPosition(i, listview)).findViewById(R.id.textView);
            if(tv.getText().toString().length() == 0){
                tv.setError("This is required");
            }
        }
    

    【讨论】:

      【解决方案4】:

      这将帮助您检查列表的空单元格:

        private int checkForEditText() {
          for (int i = 0; i < yourListSize; i++) {
              if (TextUtils.isEmpty(youlistSize.get(i))) {
                  //return positin of empty cell
                  return i;
              }
          }
         //if no cell is empty it retur -1
          return -1;
      
      }
      

      【讨论】:

      • 这个也不错...谢谢老大...
      猜你喜欢
      • 2020-01-01
      • 2013-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多