.equals()似乎不起作用

时间:2018-06-27 11:56:18

标签: android equals

我是Android Studio的新手,我一直在创建一个登录表单以打开系统设置。

我已经制作了表格,并在按下按钮后弹出表格。但是,出于某种原因,该表单始终会接受输入的详细信息,并始终以“登录成功”弹​​出。.

过去两天来我一直在网上寻找错误的地方,但是我似乎无法在代码中找到我犯错的地方?

我已经有了打开设置页面的代码,但是我删除了它只是为了向您展示我的所有代码。 (我已经测试了开放系统设置部分,并且工作正常)。

这是我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageButton mShowDialog = (ImageButton) findViewById(R.id.btnShowDialog);
    mShowDialog.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view){
            AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
            View mView = getLayoutInflater().inflate(R.layout.dialog_login, null);
            final EditText mUsername = (EditText) mView.findViewById(R.id.etUsername);
            final EditText mPassword = (EditText) mView.findViewById(R.id.etPassword);
            Button mLogin = (Button) mView.findViewById(R.id.btnLogin);

            mLogin.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View view_) {
                    if(!mUsername.getText().toString().equals("admin") && !mPassword.getText().toString().equals("admin")){
                        Toast.makeText(MainActivity.this,
                                getString(R.string.success_login_msg),
                                Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(MainActivity.this,
                                getString(R.string.error_login_msg),
                                Toast.LENGTH_SHORT).show();
                    }
                }
            });

我猜我在某个地方出了错,但是如果有人可以告诉我为什么会这样,那太好了。

谢谢。

1 个答案:

答案 0 :(得分:3)

我希望这对您有用。

使用

 public static void main(String[] args) {
    List<Integer> values = Arrays.asList(3, 3, 5, 5, 5, 6, 3, 3);

    BiPredicate<Integer, Integer> predicate = (value1, value2) -> value1.equals(value2);

    Supplier<BiConsumer<LinkedList<ValueCount>, Integer>> accumulator = 
        () -> (list, value) -> {
        if (list.isEmpty() || !predicate.test(list.getLast().getFirstValue(), value)) {
            list.add(new ValueCount());
        }
        list.getLast().add(value);
    };

    Supplier<BiConsumer<LinkedList<ValueCount>, LinkedList<ValueCount>>> combiner = () -> (list1, list2) -> {
        if (list1.getLast().getFirstValue().equals(list2.getFirst().getFirstValue())) {
            list1.getLast().addAll(list2.getFirst());
            list2.removeFirst();
        }
        list1.addAll(list2);
    };

    values.stream().collect(LinkedList::new, accumulator.get(), combiner.get())
            .forEach(group -> System.out.println(group));
}

private static class ValueCount {
    private List<Integer> lista = new ArrayList<>();

    public String toString() { return "[" + lista.get(0) + "-" + lista.size() + "]";}
    public void add(Integer value) { lista.add(value);}
    public Integer getFirstValue() { return lista.get(0);}
    public void addAll(ValueCount first) { lista.addAll(first.getAll());}
    private Collection<? extends Integer> getAll() { return lista;}
}

装有

if(mUsername.getText().toString().equals("admin") && mPassword.getText().toString().equals("admin")){

从if条件中删除!