用 Snackbar 内部替换 Toast Class

Replace Toast with Snackbar inner Class

我们想在下面的代码中用 Snackbar 替换这个 Toast 我尝试了各种配置,结果接近但没有奖品 我的最佳配置不会在 make Snackbar

中接受 LENGTH_SHORT

有人可以解释一下 Snackbar 代码的放置位置以及为什么 LENGTH_SHORT 没有被接受吗?

    private void addListenerOnButton_ADD() {
    btnAdd.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            if(ETinput.getText().length()==0){
                Toast.makeText(MainActivity.this,"Enter a Value",Toast.LENGTH_SHORT).show();
                // REMOVE THIS Toast and insert Snackbar
                //======================================
                return;
            }
                    ......

        }
    });
}

这是编辑

    private void addListenerOnButton_ADD(final AlteredCharSequence Snackbar) {
    btnAdd.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            if(ETinput.getText().length()==0){
                Toast.makeText(MainActivity.this,"Enter a Value",Toast.LENGTH_SHORT).show();
                // REMOVE THIS Toast and insert Snackbar
                //======================================
                Snackbar.make(findViewById(android.R.id.content), "Had a snack at Snackbar", Snackbar.LENGTH_LONG)
                        .setActionTextColor( Color.RED)
                        .show();
                return;
            }

            int Y = Integer.valueOf(ETinput.getText().toString().trim());
            int Z = Y + X;
            ETans.setText(String.valueOf(Z));

            //float Y = Float.valueOf(ETinput.getText().toString().trim());
            //float Z = Y + X;
            //ETans.setText(String.valueOf(Z));
        }
    });
}

使用这个

Snackbar snackbar;

btnAdd.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            snackbar = Snackbar.make(view, "Enter a Value", Snackbar.LENGTH_LONG);
            if(ETinput.getText().length()==0){



    snackbar.show();

  return;
            }
                    ......

        }
    });
}

如果你想要无限期的持续时间,可以使用 Snackbar.LENGTH_INDEFINITE,当你想关闭时,只需使用 snackbar.dismiss();

使用setOnClickListener中的view作为Snackbar.make方法的第一个参数:

private void addListenerOnButton_ADD(final AlteredCharSequence Snackbar) {
    btnAdd.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            if(ETinput.getText().length()==0){
                Snackbar.make(view, "Enter a Value", Snackbar.LENGTH_SHORT).setAction("Action", null).show();
                return;
            }

            int Y = Integer.valueOf(ETinput.getText().toString().trim());
            int Z = Y + X;
            ETans.setText(String.valueOf(Z));

            //float Y = Float.valueOf(ETinput.getText().toString().trim());
            //float Z = Y + X;
            //ETans.setText(String.valueOf(Z));
        }
    });
}