我已经动态添加了某个视图(例如编辑文本,广播和复选框)。如何为所有视图添加通用侦听器,以便我可以访问它中的值(当它发生更改时)?如何在课堂上制作一个共同的听众
1
A
回答
3
创建一个实现了所有的不同意见的听众需要自定义的抽象监听器类。
例如,
public abstract class CustomListener implements OnCickListener, CheckedChangedListener....{
public void onClick(View view){
onEvent(view);
}
public void onCheckedChanged(View view){
onEvent(view);
}
public abstract void onEvent(View view);
}
然后在您的类中创建这个customListener的对象,并添加所有的意见
0
如果你想给点击事件监听器,只需在oncreate方法中定义下面的代码。
btnSubmit.setOnClickListener(clicklistener);
以及自定义监听器会是这样,
private OnClickListener clicklistener = new OnClickListener() {
@Override
public void onClick(View v) {
try {
switch (v.getId()) {
case R.id.btnSubmit:
// Do your code....
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
1
从你淘汰你的问题,我会认为你还没有工作的方式这很多,你很可能不需要创建自定义控件或自定义侦听器。
你说你在哪里动态添加控件,所以它看起来是这样的:
EditText editText = new EditText(this);
//editText setup...
RadioButton radioButton = new RadioButton(this)
//radioButton setup...
CheckBox checkBox = new CheckBox(this);
//checkBox setup...
然后,您可以添加侦听,像这样(可选调用改变的方法):
EditText editText = new EditText(this);
//editText setup...
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
changed();
}
@Override
public void afterTextChanged(Editable s) {
}
});
RadioButton radioButton = new RadioButton(this);
//radioButton setup...
radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
changed();
}
});
CheckBox checkBox = new CheckBox(this);
//checkBox setup...
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
changed();
}
});
+0
我也这么做了。我认为他们可能是一种新方法。 – Killer
相关问题
- 1. 在课堂上制作$(this)ID
- 2. 如何制作全球课堂?
- 3. 如何回到上一堂课?
- 4. 如何在课堂上使用线程?
- 5. 如何在课堂上轨加协会
- 6. 如何在课堂上访问Laravel Singletons?
- 7. 你如何在课堂上分享ivars?
- 8. 在课堂中引用一个视图的ID(在课堂上如何给我们R.id.name)
- 9. 我的课堂如何表现得像一个静态课程?
- 10. nhibernate在课堂上懒惰
- 11. T在课堂上? AddRange ICollection?
- 12. 在课堂上显示ListView
- 13. 听众内部制作人
- 14. 如何选择所有下一个课程直到上一堂课并隐藏?
- 15. 听众如何工作
- 16. 隐藏课堂上的RNG
- 17. 如何从课堂上运行服务?
- 18. angularJS 1.2如果在课堂上表达
- 19. 如何从课堂外进入课堂变量
- 20. 如何让Jbutton开办另一堂课?
- 21. 如何在课堂中共享IDisposable资源?
- 22. rallytextfield上的听众
- 23. 如何设计课堂?
- 24. 如何从课堂脱身
- 25. 如何使课堂真实?
- 26. 我如何选择课堂?
- 27. 如何隔离课堂?
- 28. 如何在我的主课堂中使用我的第二堂课?
- 29. 将一个庞大的“单片”课堂分解为更小的课堂
- 30. 在课堂上正确组织公共/保护/私人功能
什么一种倾听者? –
@NicolasTyler更改侦听器,以便可以访问更改值 – Killer
那么每个视图类型都有不同的侦听器,因此您必须为它们分配不同的侦听器。 –