Action buttons to enter the quickActionBar GreenDroid

578 Views Asked by At

I am creating an actionbar with greendroid. I managed to create the actionbar and then put a quick action. My problem is just about the quickaction because I do not know how to insert actions for each of the buttons quick action. Could anyone help me? This picture explains better what I do:

http://s7.postimage.org/iavbl44mj/greendroid09.png

And this my code of quickActionBar

private void initQuickActionBar() {
        quickActions = new QuickActionBar(this);

        quickActions.addQuickAction(new QuickAction(this, R.drawable.buscar, "Buscar"));
        quickActions.addQuickAction(new QuickAction(this, R.drawable.tags, "Tags"));
        quickActions.addQuickAction(new QuickAction(this, R.drawable.mail, "Email"));

        quickActions.setOnQuickActionClickListener(new OnQuickActionClickListener() {

            @Override
            public void onQuickActionClicked(QuickActionWidget widget, int position) {



            }
        });

Thks!

1

There are 1 best solutions below

7
On

You have to use the method onHandleActionBarItemClick

@Override
    public boolean onHandleActionBarItemClick(ActionBarItem item, int position) {
    switch (item.getItemId()) {
    case LOCATE:
          //show toast
        Toast.makeText(getApplicationContext(),
            "Vous avez cliquez sur le bouton LOCATE",
            Toast.LENGTH_SHORT).show();
        break;

    case REFRESH:
          //show toast
        Toast.makeText(getApplicationContext(),
            "Vous avez cliquez sur le bouton REFRESH",
            Toast.LENGTH_SHORT).show();
        break;

    case SHARE:
         // show quicAction and then a toas
         quickActions.show(item.getItemView());
        Toast.makeText(getApplicationContext(),
            "Vous avez cliquez sur le bouton SHARE",
            Toast.LENGTH_SHORT).show();
        break;
    default:
        return super.onHandleActionBarItemClick(item, position);
    }

    return true;
    }

in your activity you should have something simular to this

import greendroid.app.GDActivity;
import android.os.Bundle;

public class GDIntroActivity extends GDActivity {

   private QuickActionWidget quickActions;

    /** Called when the activity is first created. */
@Override
   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);

   setActionBarContentView(R.layout.main);
   initActionBar();
   initQuickActionBar();
   }

private void initQuickActionBar() {
    quickActions = new QuickActionBar(this);
    quickActions.addQuickAction(new QuickAction(this, R.drawable.facebook,
        "Facebook"));
    quickActions.addQuickAction(new QuickAction(this, R.drawable.twitter, "Twitter"));
    quickActions.addQuickAction(new QuickAction(this, R.drawable.mail, "Email"));
    quickActions.setOnQuickActionClickListener(new OnQuickActionClickListener() {
        public void onQuickActionClicked(QuickActionWidget widget,
            int position) {
         Toast.makeText(GDIntroActivity.this,
         "Item " + position + " clicked", Toast.LENGTH_SHORT)
         .show();
        }
    });
    }
}

Check this link if you want to lunch facebook login you can use this

Intent intent = new Intent("android.intent.category.LAUNCHER");
intent.setClassName("com.facebook.katana", "com.facebook.katana.LoginActivity");
startActivity(intent);

But the facebook app must be installed on your device or your emulator to trigger it

you can use it in your QuickAction Like this

private void initQuickActionBar() {
        quickActions = new QuickActionBar(this);
        quickActions.addQuickAction(new QuickAction(this, R.drawable.facebook,
            "Facebook"));
        quickActions.addQuickAction(new QuickAction(this, R.drawable.twitter, "Twitter"));
        quickActions.addQuickAction(new QuickAction(this, R.drawable.mail, "Email"));
        quickActions.setOnQuickActionClickListener(new OnQuickActionClickListener() {
            public void onQuickActionClicked(QuickActionWidget widget,
                int position) {
             switch(position){
              case facebook_position:
                   Intent intent = new Intent("android.intent.category.LAUNCHER");
                   intent.setClassName("com.facebook.katana", "com.facebook.katana.LoginActivity");
                   startActivity(intent);
                   break;
              case twitter_position:
                //do stuff

             }
            }
    });
    }