Vasil Valchev
Vasil Valchev

Reputation: 5819

Snackbar action getView()

in my Activity I have implement OnClickListener interface

MainActivity extends AppCompatActivity implements View.OnClickListener

init snackbar like this:

snackbar = Snackbar.make(view, R.string.msg, Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.action_undo, this);

but I cannot handle it on implemented OnClickListener interface method

@Override
public void onClick(View v) {
    // this not work!
    // snackbar id is different from snackbar action id
    if (v.getId() == snackbar.getView().getId()) {

    }
}

Someone know how to get action view from snackbar?

Upvotes: 4

Views: 2481

Answers (3)

Hossein Kurd
Hossein Kurd

Reputation: 4555

v.getId()

is always (Reserved) :

android.support.design.R.id.snackbar_action

Doc

Upvotes: 1

Shadab Ansari
Shadab Ansari

Reputation: 7070

For every Snackbar, the Snackbar textview resource id is

    android.support.design.R.id.snackbar_text

And the Snackbar action view resource id is

    android.support.design.R.id.snackbar_action

If I correctly understood your question, you want to get the Snackbar action resource id. you can easily get that as I mentioned above and in onClick() , you can use it like -

@Override
public void onClick(View v) {

    if (v.getId() == android.support.design.R.id.snackbar_action) {

    }
}

Upvotes: 11

gautamprajapati
gautamprajapati

Reputation: 2095

You can try this to set action on a snackbar.

View.OnClickListener snackbarClickListener = new View.OnClickListener() {
         @Override
         public void onClick(View v) {

         }
     };

snackbar = Snackbar.make(view, R.string.msg, Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.action_undo, snackbarClickListener);

Upvotes: 0

Related Questions