gpt4 book ai didi

android - 获取 View 中所有EditTexts的方法

转载 作者:IT老高 更新时间:2023-10-28 23:08:46 25 4
gpt4 key购买 nike

谁能帮我编写一种方法来获取 View 中的所有 EditText?我想实现此处发布的解决方案 htafoya: How to hide soft keyboard on android after clicking outside EditText?

很遗憾,缺少 getFields() 方法,htafoya 没有回答我们分享他的 getFields() 方法的请求。

最佳答案

编辑

MByD 指出了一个错误,因此我的答案几乎与黑带的答案相同。我已将我的编辑为正确的方法。


您可以执行一个 for-each 循环,然后检查每个 View 是否属于 EditText 类型:

ArrayList<EditText> myEditTextList = new ArrayList<EditText>();

for( int i = 0; i < myLayout.getChildCount(); i++ )
if( myLayout.getChildAt( i ) instanceof EditText )
myEditTextList.add( (EditText) myLayout.getChildAt( i ) );

您也可以拥有一个 ID 列表,而不是 EditTexts 列表,然后只需将 child 的 id 添加到列表中:myIdList.add(child.getId());


要访问您的布局,您需要获取它的引用。这意味着您需要在 XML 中为您的布局提供一个 ID:

<LinearLayout android:id="@+id/myLinearLayout" >
//Here is where your EditTexts would be declared
</LinearLayout>

然后,当您在 Activity 中扩展布局时,您只需确保保存对它的引用:

LinearLayout myLinearLayout;

public void onCreate( Bundle savedInstanceState ) {
super( savedInstanceState );
setContentView( R.layout.myLayoutWithEditTexts );

...

myLinearLayout = (LinearLayout) findViewById( R.id.myLinearLayout );
}

然后,您可以在 Activity 中引用您的 EditTexts 的持有者。

关于android - 获取 View 中所有EditTexts的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7790487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com