switch case不能正常工作

t3psigkw  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(381)

当我离开现场时,我把下面的代码贴出来了 ip 空白/空,并为其他字段赋值 toast 总是传达信息 KATimer is invalid or missing .
我希望看到一个 toast 显示一条指示空字段的消息,但是下面的代码,如果任何字段为空,它总是说 KATimer is invalid or empty .
为什么会这样,我错过了一些东西
代码:
btn子视图\u连接:

btnStubView_Connect.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (isValidMQTTConfigs(etStubView_ip) && 
                    isValidMQTTConfigs(etStubView_port) && 
                    isValidMQTTConfigs(etStubView_ClientID) &&
                    isValidMQTTConfigs(etStubView_KATimer)) {

                Log.d(TAG, "@btnStubView_ConnectListener(): all entries are valid");
                setCSession(cbStubView_CS.isChecked()); // set the current state of the cleanSession checkBox.
                addToContentValues();
                Log.d(TAG, "@btnStubView_ConnectListener(): all entries added toContentValues");

            } else {
                Log.w(TAG, "@btnStubView_ConnectListener(): one or more entry(s) is invalid or left blank.");
            }
        }
    });

isvalidmqttconfigs:

protected boolean isValidMQTTConfigs(View view) {
    // TODO Auto-generated method stub
    boolean valid = false;
    String viewName = "";

    switch(view.getId()) {
    case R.id.etSubView_ip:
        viewName = "IP";
        if (isDuly( ((EditText) view).getText().toString())) {
            this.setIP(((EditText) view).getText().toString());
            return valid = true;
        }

    case R.id.etSubView_port:
        viewName = "Port";
        if (isDuly( ((EditText) view).getText().toString())) {
            this.setPort(((EditText) view).getText().toString());
            return valid = true;
        }

    case R.id.etSubView_clientID:
        viewName = "clientID";
        if (isDuly( ((EditText) view).getText().toString())) {
            this.setClienID(((EditText) view).getText().toString());
            return valid = true;
        }

    case R.id.etSubView_KATimer:
        viewName = "KAtimer";
        if (isDuly( ((EditText) view).getText().toString())) {
            this.setKATimer(((EditText) view).getText().toString());
            return valid = true;
        }
    }

    Log.w(TAG, "@checkMQTTConfigs(): " + viewName + " is invalid or missing");
    Toast.makeText(getActivity(), viewName + " is invalid or missing", Toast.LENGTH_SHORT).show();
    return valid;
}

isduly公司:

private boolean isDuly(String text) {
    // TODO Auto-generated method stub
    if (text.trim().equals("")) {
        return false;
    } else {
        return true;
    }
}
atmip9wb

atmip9wb1#

你好像漏掉了几句话。

Switch(X){
case 1: doOne();
case 2: doTwo();
case 3: doThree();
}

瀑布流确保如果x是2,dotwo和dothree都将被执行。如果x为1,则将执行所有三个方法。
如果只想调用链接的方法,请将代码更改为:

Switch(X){
case 1: doOne(); break;
case 2: doTwo(); break;
case 3: doThree(); break;
}
nwlqm0z1

nwlqm0z12#

你没有使用 break;case 即使您不想执行,也会导致下面的案例执行。例如,这是正确的:-

switch(int){ 
   case 1:
   break;
   case 2:
   break;
 }

这将导致意外的输出,尽管它不是wrong:-

switch(int){ 
   case 1:
   case 2:
 }

省略 break 将导致在执行案例1之后执行案例2。

相关问题