开关盒不能正常工作

我在下面发布的代码,当我离开字段ip空白/空并给其他字段KATimer is invalid or missingtoast总是给出消息KATimer is invalid or missing

我希望看到一个toast显示一条消息,指示空字段,但下面的代码,如果任何字段为空,它总是说KATimer is invalid or empty

为什么会这样,我错过了一些东西

码:

btnStubView_Connect

 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; } 

是杜利

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

你似乎错过了几个break语句。

 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; } 

你没有使用break; 在导致下面case每个case ,即使你不想要它们也会执行。 例如,这是正确的: –

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

虽然没有错,但这会导致意外的输出: –

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

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