I am looking for a QuickAction dialog using onclick search view. Here is an image showing what I'm looking for:
http://www.freeimagehosting.net/newuploads/frclk.png
Does anyone have a sample or link showing how to do this?
Also, how can I break the quick action dialog in two parts? This is currently shown as follows:
http://www.freeimagehosting.net/newuploads/3vr1p.png
how
| check check check check |
I want this way:
| check check | | check check | | Ok |
Here is my code:
QuickAction.java
public class QuickAction extends PopupWindows implements OnDismissListener { private View mRootView; private ImageView mArrowUp; private ImageView mArrowDown; private CheckBox check; private LayoutInflater mInflater; private ViewGroup mTrack; private ScrollView mScroller; private OnActionItemClickListener mItemClickListener; private OnDismissListener mDismissListener; private List<ActionItem> actionItems = new ArrayList<ActionItem>(); private boolean mDidAction; private int mChildPos; private int mInsertPos; private int mAnimStyle; private int mOrientation; private int rootWidth=0; public static final int HORIZONTAL = 0; public static final int VERTICAL = 1; public static final int ANIM_GROW_FROM_LEFT = 1; public static final int ANIM_GROW_FROM_RIGHT = 2; public static final int ANIM_GROW_FROM_CENTER = 3; public static final int ANIM_REFLECT = 4; public static final int ANIM_AUTO = 5; public QuickAction(Context context) { this(context, VERTICAL); } public QuickAction(Context context, int orientation) { super(context); mOrientation = orientation; mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (mOrientation == HORIZONTAL) { setRootViewId(R.layout.popup_horizontal); } else { setRootViewId(R.layout.popup_vertical); } mAnimStyle = ANIM_AUTO; mChildPos = 0; } public ActionItem getActionItem(int index) { return actionItems.get(index); } public void setRootViewId(int id) { mRootView = (ViewGroup) mInflater.inflate(id, null); mTrack = (ViewGroup) mRootView.findViewById(R.id.tracks); mArrowDown = (ImageView) mRootView.findViewById(R.id.arrow_down); mArrowUp = (ImageView) mRootView.findViewById(R.id.arrow_up); mScroller = (ScrollView) mRootView.findViewById(R.id.scroller);
ExampleActivity.java
public class ExampleActivity extends Activity { //action id private static final int ID_UP = 1; private static final int ID_DOWN = 1; private static final int ID_SEARCH = 3; private static final int ID_INFO = 4; private static final int ID_ERASE = 5; private static final int ID_OK = 6; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionItem nextItem = new ActionItem(ID_DOWN, "By MRN"); ActionItem prevItem = new ActionItem(ID_UP, "BY DATE"); ActionItem searchItem = new ActionItem(2, "BY NAME"); ActionItem infoItem = new ActionItem(2, "BY lOCATION"); ActionItem okItem = new ActionItem(3, "OK"); //use setSticky(true) to disable QuickAction dialog being dismissed after an item is clicked prevItem.setSticky(true); nextItem.setSticky(true); searchItem.setSticky(true); infoItem.setSticky(true); //create QuickAction. Use QuickAction.VERTICAL or QuickAction.HORIZONTAL param to define layout //orientation final QuickAction quickAction = new QuickAction(this, QuickAction.VERTICAL); //add action items into QuickAction quickAction.addActionItem(nextItem); System.out.println("nextItem"); quickAction.addActionItem(prevItem); System.out.println("prevItem"); quickAction.addActionItem(searchItem); System.out.println("searchItem"); quickAction.addActionItem(infoItem); System.out.println("infoItem"); quickAction.addActionItem(okItem); System.out.println("okItem"); //Set listener for action item clicked quickAction.setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() { @Override public void onItemClick(QuickAction source, int pos, int actionId) { ActionItem actionItem = quickAction.getActionItem(pos); //here we can filter which action item was clicked with pos or actionId parameter /*if (actionId == ID_SEARCH) { Toast.makeText(getApplicationContext(), "Let do some search action", Toast.LENGTH_SHORT).show(); } else if (actionId == ID_INFO) { Toast.makeText(getApplicationContext(), "I have no info this time", Toast.LENGTH_SHORT).show(); } else {*/ Toast.makeText(getApplicationContext(), actionItem.getTitle() + " selected", Toast.LENGTH_SHORT).show(); //} } }); //set listnener for on dismiss event, this listener will be called only if QuickAction dialog was dismissed //by clicking the area outside the dialog. quickAction.setOnDismissListener(new QuickAction.OnDismissListener() { @Override public void onDismiss() { Toast.makeText(getApplicationContext(), "Dismissed", Toast.LENGTH_SHORT).show(); } }); //show on btn1 Button btn1 = (Button) this.findViewById(R.id.btn1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { quickAction.show(v); } }); Button btn2 = (Button) this.findViewById(R.id.btn2); btn2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { quickAction.show(v); } }); /*Button btn3 = (Button) this.findViewById(R.id.btn3); btn3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { quickAction.show(v); quickAction.setAnimStyle(QuickAction.ANIM_REFLECT); } });*/ } }
android android-layout android-intent android-emulator
Rao's Sep 10 2018-12-12T00: 00Z
source share