条件 'labelOk = true' 总是 'true'
condition 'labelOk = true' is always 'true'
如果五个独立验证器将它们的布尔值设置为 true,我想启用我的按钮。但是如果我说 if (labelOk == true){}
我会在标题中看到消息。有什么问题吗?
public class AddDataFragment extends Fragment {
DbHelper mydb;
Button buttonadd;
Button buttondelete;
private String inputProduct = ("");
private EditText inputLabel;
//Validator booleans
boolean labelOk = false;
boolean serialOk= false;
boolean macOk= false;
boolean daaIdOk= false;
boolean billOk= false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_add_data, container, false);
final Context context = getContext();
mydb = new DbHelper(context);
Log.d("labelOk am Ende", String.valueOf(labelOk));
buttonadd.setEnabled(true);
buttondelete.setEnabled(true);
//Initialize the input methods//////////////////////////////////////////////////////////////////////////////////////
//Label
inputLabel = (EditText) view.findViewById(R.id.editText_label);
inputLabel.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) {}
@Override
public void afterTextChanged(Editable s) {
Pattern p = Pattern.compile("^[A-Z]{3}-[0-9]{4}$");
Matcher m = p.matcher(s);
if (s.hashCode() == inputLabel.hashCode()){
labelOk = m.find();
} else {
labelOk = m.find();
}
Log.d("ButtonAdd aktiviert?", String.valueOf(labelOk));
}
});
if (labelOk = true){ /////////////////////////////////////////////////////HERE
buttonadd = (Button) view.findViewById(R.id.button_add_addData);
}
buttondelete = (Button) view.findViewById(R.id.button_delete_addData);
buttonadd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Context context = getContext();
String product = inputProduct;
String label = inputLabel.getText().toString();
mydb.insertData(product, label);
inputLabel.setText("");
}
});
return view;
}
}
这是我的Fragment
的简化版本,但我想你会明白的。
通过 labelOk = true 将 labelOk 更改为 true!
您使用 = 而不是 ==。
另外,为什么你有一个 if-else 在两种情况下做同样的事情?
if (s.hashCode() == inputLabel.hashCode()){
labelOk = m.find();
} else {
labelOk = m.find();
}
试试这个
if(labelOk) {
//labelOk is true
} else {
//labelOk is false
}
如果五个独立验证器将它们的布尔值设置为 true,我想启用我的按钮。但是如果我说 if (labelOk == true){}
我会在标题中看到消息。有什么问题吗?
public class AddDataFragment extends Fragment {
DbHelper mydb;
Button buttonadd;
Button buttondelete;
private String inputProduct = ("");
private EditText inputLabel;
//Validator booleans
boolean labelOk = false;
boolean serialOk= false;
boolean macOk= false;
boolean daaIdOk= false;
boolean billOk= false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_add_data, container, false);
final Context context = getContext();
mydb = new DbHelper(context);
Log.d("labelOk am Ende", String.valueOf(labelOk));
buttonadd.setEnabled(true);
buttondelete.setEnabled(true);
//Initialize the input methods//////////////////////////////////////////////////////////////////////////////////////
//Label
inputLabel = (EditText) view.findViewById(R.id.editText_label);
inputLabel.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) {}
@Override
public void afterTextChanged(Editable s) {
Pattern p = Pattern.compile("^[A-Z]{3}-[0-9]{4}$");
Matcher m = p.matcher(s);
if (s.hashCode() == inputLabel.hashCode()){
labelOk = m.find();
} else {
labelOk = m.find();
}
Log.d("ButtonAdd aktiviert?", String.valueOf(labelOk));
}
});
if (labelOk = true){ /////////////////////////////////////////////////////HERE
buttonadd = (Button) view.findViewById(R.id.button_add_addData);
}
buttondelete = (Button) view.findViewById(R.id.button_delete_addData);
buttonadd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Context context = getContext();
String product = inputProduct;
String label = inputLabel.getText().toString();
mydb.insertData(product, label);
inputLabel.setText("");
}
});
return view;
}
}
这是我的Fragment
的简化版本,但我想你会明白的。
通过 labelOk = true 将 labelOk 更改为 true!
您使用 = 而不是 ==。
另外,为什么你有一个 if-else 在两种情况下做同样的事情?
if (s.hashCode() == inputLabel.hashCode()){
labelOk = m.find();
} else {
labelOk = m.find();
}
试试这个
if(labelOk) {
//labelOk is true
} else {
//labelOk is false
}