用Snackbar内部类替换Toast

时间:2016-08-22 17:19:10

标签: java android snackbar

我们想在下面的代码中用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));
        }
    });
}

2 个答案:

答案 0 :(得分:1)

使用view中的setOnClickListener作为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));
        }
    });
}

答案 1 :(得分:0)

使用此

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

        }
    });
}

如果您想要持续时间INDEFINITE,并且只想使用Snackbar.LENGTH_INDEFINITE

,请使用snackbar.dismiss();