我遇到了问题,以下是onClickListener
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Integral prev;
if(selm.getSelectedItem().toString().equals("Trapezi"))
prev=new Trapezi();
else
prev=new SimpsonI();
txtit.setEnabled(!txtit.isEnabled());
if(txtit.isEnabled()) {
calc = calc.getComposite();
}
else {
calc = prev;
}
}
});
未到达方法的末尾,它在执行line后停止:
txtit.setEnabled(!txtit.isEnabled());
这是一个非常奇怪的问题,所以我无法理解它的原因。我是Android的新手,我正在编写一个简单的应用程序,以便在Android环境中变得友好,如果我的问题很愚蠢,这就是原因!感谢
答案 0 :(得分:1)
只需if
或else
语句仅对单行代码有效,因此请在else
语句中添加大括号,
Integral prev;
if(selm.getSelectedItem().toString().equals("Trapezi"))
prev=new Trapezi();
else
{
prev=new SimpsonI();
txtit.setEnabled(!txtit.isEnabled());
}
...
如果您希望在每种情况下都执行setEnabled
,那么即使不弄乱代码重新格式化
else
{
prev=new SimpsonI();
}
txtit.setEnabled(!txtit.isEnabled());
答案 1 :(得分:1)
您的txtit.setEnabled(!txtit.isEnabled())
内不得包含此onClick
。
在onCreate
中,执行:
final boolean getValue = txtit.setEnabled(!txtit.isEnabled());
并用我的onClick
更改:
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Integral prev;
if(selm.getSelectedItem().toString().equals("Trapezi"))
prev=new Trapezi();
else
prev=new SimpsonI();
if(getValue) {
calc = calc.getComposite();
}
else {
calc = prev;
}
}
});
答案 2 :(得分:0)