【发布时间】:2016-03-21 13:30:21
【问题描述】:
我有 1 个活动和 3 个片段在此活动中。
在3个片段中,当检查复选框时,我有booleans返回true,或者edittext不为空。
当editTexts不为空并且我的复选框被选中时,我想无法按钮..
当我在方法 EditTextCompleted() 中添加了类似 sexMan.isChecked() 的内容时 我的应用崩溃了....
那么我怎样才能将这些条件连接到一个地方呢?
复选框监听器
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
mSendInfoFromBmrFragment.sexChecked(true);
switch (buttonView.getId()){
case R.id.sexMan:
mSendInfoFromBmrFragment.sex(BmrCalculation.SEX_MAN);
sexMan.setChecked(true);
sexWoman.setChecked(false);
break;
case R.id.sexWoman:
sexMan.setChecked(false);
sexWoman.setChecked(true);
mSendInfoFromBmrFragment.sex(BmrCalculation.SEX_WOMAN);
break;
编辑文本监听器
@覆盖 public void afterTextChanged(Editable s) {
if ( s == weightEditText.getEditableText()){
mSendInfoFromBmrFragment.getweight(Integer.parseInt(s.toString()));
mWeight = Integer.parseInt(s.toString());
} else if ( s == heightEditText.getEditableText()) {
mSendInfoFromBmrFragment.getheight(Integer.parseInt(s.toString()));
mHeight = Integer.parseInt(s.toString());
} else if ( s == ageEditText.getEditableText()){
mSendInfoFromBmrFragment.getage(Integer.parseInt(s.toString()));
mAge = Integer.parseInt(s.toString());
}
if ( (!(weightEditText.getEditableText().toString().equals("")) && !(heightEditText.getEditableText().toString().equals("")) && !(ageEditText.getEditableText().toString().equals("")))) {
mSendInfoFromBmrFragment.editTextComplete(true);
} else {
mSendInfoFromBmrFragment.editTextComplete(false);
}
}
界面
public interface sendInfoFromBmrFragment {
public void getheight(int height);
public void getweight(int weight);
public void getage(int age);
public void editTextComplete(boolean editTextComplete);
public void sex(String sex);
}
【问题讨论】:
-
当我们看不到你的代码时很难说是哪种方法。
-
@KristyWelsh 代码已添加
-
Soo.. 我改变了逻辑.. 可能它不是超级优化,但它可以工作.. 我将复选框更改为在开始时禁用.. 然后删除条件“mSendInfoFromBmrFragment.editTextComplete(true);”并替换使用 myChecbox.setEnabled(true) ,然后如果我的 checbox 被选中,我将启用按钮去另一个活动。
标签: android methods interface android-lifecycle