将View标记设置为检索同级视图

时间:2013-12-26 22:43:30

标签: android checkbox

我有一组View States,每个都包含CheckBox视图和EditText View。当用户检查CheckBox时,我想设置EditText的可见性。

要从EditText获取CheckBox的句柄,我只需将EditText作为标记放在CheckBox的{​​{1}}中:

OnCreate()

稍后,在// In OnCreate() v = f1.findViewById(R.id.imgNotes); v.setTag(f1.findViewById(R.id.noteText)); v.setOnClickListener(this); 我从标记中检索onClick()

EditText

一切都很好。我只是想知道是否有更好的方法。或者这没关系?或者这是理想的方式吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

这可行,没有问题,但作为一种做法,避免将视图标记到其他视图。你可以尝试其他几种方法。

字段变量

为EditText和CheckBox声明两个私有成员,并在单击复选框时直接访问它们。如果我们说你有一对CheckBox和EditText就可以正常工作,但是如果连接的check_box和edit_text id太多,代码会变得混乱。

自定义视图

定义一个包含此类View状态对的custom view类,这样您就可以管理多个这样的对,每个自定义视图在该视图中保存业务逻辑,从而提供将来添加更多行为的灵活性,只需编辑这堂课。

希望有所帮助。 :)

答案 1 :(得分:0)

onCreateEditText保存到全局变量中,请执行以下操作:

mEditText = (EditText) f1.findViewById(R.id.noteText)

然后在您的onClick中使用mEditText代替noteText