James_Duh
James_Duh

Reputation: 1371

Why this import static <project-name> .R.id.snackbarView

We added a android.support.design.widget.CoordinatorLayout to the XML file for the Activity that is using a Snackbar. All the Gradle information is correct and the two other corresponding imports are imported minSdk is 19 Support Design is v25.3.1 My question is why is this import happening and have I omitted some setting somewhere?

The original XML code file has a Relative Layout plus other items and the XML for the CoordinatorLayout widget

code for snackbar

    public void showSnackbar(){

    //coordinatorLayout = findViewById(snackbarView);

    //Snackbar snackbar = null;
        final Snackbar snackbar = Snackbar
                .make(findViewById(snackbarView), getText(R.string.snackbar_text),1);
                snackbar.setActionTextColor(Color.RED);
                snackbar.setAction("EXIT", new View.OnClickListener(){

            @Override
            public void onClick(View view) {
                //Intent intent = new Intent(DetailsActivity.this, MainActivity.class);
                //startActivity(intent);
                snackbar.dismiss();
            }
        });

        TextView snackbarActionTextView  = (TextView) snackbar.getView().findViewById( android.support.design.R.id.snackbar_action );
        snackbarActionTextView.setTextSize( 30 );
        snackbarActionTextView.setTypeface(snackbarActionTextView.getTypeface(), Typeface.BOLD);

        TextView snackbarTextView = (TextView) snackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
        snackbarTextView.setTextSize( 30 );
        snackbarTextView.setMaxLines( 3 );
        snackbarTextView.setTextColor(Color.YELLOW);
        snackbar.setDuration(Snackbar.LENGTH_INDEFINITE);
        snackbar.show();

    }

here is my import

  import android.support.design.widget.Snackbar;
  import android.support.v7.app.AppCompatActivity;

Upvotes: 0

Views: 229

Answers (1)

Vector
Vector

Reputation: 3235

James_Duh here is some code that will create a plain Snackbar no Action button and the other method creates a Snackbar with the Action button enjoy Not sure about the import?

    public void onPLAIN(View view){

    noActLayout = (CoordinatorLayout)findViewById(R.id.USE_ME_TWICE);

    sbNoAct = Snackbar.make(noActLayout,R.string.real_csb_noaction_text,1);// any interger will make it happy
    sbNoAct.setDuration(4000);// 4 sec // OR Snackbar.LENGTH_LONG matters NOT you are setting duration here

    View sbView = sbNoAct.getView();
    sbView.setBackgroundColor(ContextCompat.getColor(this, R.color.color_lightBlue));
    TextView textViewNoAct = sbView.findViewById(android.support.design.R.id.snackbar_text);
    //set text color
    textViewNoAct.setTextColor(ContextCompat.getColor(this,R.color.color_White));
    textViewNoAct.setMaxLines(10);
    textViewNoAct.setTextSize(18);
    //increase max lines of text in snackbar. default is 2.
    sbNoAct.show();
}

public void onWithAct(View view){

    myLayout = (CoordinatorLayout) findViewById(R.id.USE_ME_TWICE);

    sb = Snackbar.make(myLayout, R.string.real_csb_text, Snackbar.LENGTH_INDEFINITE)
            .setAction(R.string.real_csb_action, myOnClickListener)
            .setActionTextColor(ContextCompat.getColor(context, R.color.color_Red));

    View sbView = sb.getView();
    sbView.setBackgroundColor(ContextCompat.getColor(this, R.color.color_White));
    TextView textView = sbView.findViewById(android.support.design.R.id.snackbar_text);
    //set text color
    textView.setTextColor(ContextCompat.getColor(this,R.color.color_deepBlue));
    textView.setTextSize(18);
    //increase max lines of text in snackbar. default is 2.
    textView.setMaxLines(10);
    // NOTE new View
    TextView textAction = sbView.findViewById(android.support.design.R.id.snackbar_action);
    //set Action text color
    textAction.setTextColor(ContextCompat.getColor(this,R.color.color_Red));
    textAction.setTextSize(18);
    sb.show();
}
    View.OnClickListener myOnClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //sb.dismiss();
            System.out.println("=== I WAS DISMISSED OR SENT TO MainActivity===");
            // OR use and Intent to go somewhere have a nice trip
            Intent intent = new Intent(PageThreeActivity.this, MainActivity.class);
            startActivity(intent);
        }
    };
}

Upvotes: 1

Related Questions