Skip to main content

OptionsMenu in Sketchware

In order to create OptionsMenu in Sketchware, follow the steps given below.

1. Create a more Block extra in your project.

2. To define this more block extra use an add source directly block and put following code in it.
}
@Override
public boolean onCreateOptionsMenu (Menu menu){
menu.add(0, 0, 0, "Item 1");
menu.add(0, 1, 1, "Item 2");
menu.add(0, 2, 2, "Item 3");
return true;
}

Note that here the first } closes more block. Rest of the code is outside the more block extra. This is to code for onCreateOptionsMenu where three items are added to the menu.

Also note that 0, 1, and 2 are Id of the items added to the menu, and Item 1, Item 2, Item 3 are the title of the items added. Change the titles to whatever you want.

To display the OptionsMenu items as icons on the ActionBar, add the id of the images to the menu items. Suppose ic_settings_white is the icon for item 1. Then the code above will change as below.
}
@Override
public boolean onCreateOptionsMenu (Menu menu){
menu.add(0,0,0, "Item 1").setIcon(R.drawable.ic_settings_white).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.add(0, 1, 1, "Item 2");
menu.add(0, 2, 2, "Item 3");
return true;
}

3. After this add another add source directly block and put following code in it.
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case 0:
showMessage("Item 1 Clicked");
break;
case 1:
showMessage("Item 2 Clicked");
break;
case 2:
showMessage("Item 3 Clicked");
break;
case android.R.id.home:
showMessage("Home Button Clicked");
break;
}
return super.onOptionsItemSelected(item);

This is the code for onOptionsItemSelected. The app will show the messages as written in the code when any item from the OptionsMenu is selected.

Note that showMessage("Text"); works only in Sketchware and it is a short form of Toast messages.

4. Suppose you have three more pages apart from main.xml, namely page1.xmlpage2.xml and page3.xml. In order to open these when items in OptionsMenu are selected, follow the steps below.

a. Add three new More Blocks move1move2, and move3.

b. Add an Intent component intent.

c. Define the more blocks. Use Intent setScreen blocks to move to different screens. See images below.

d. Now add the more blocks in the code at paragraph 2 above. The code for onOptionsItemSelected should now look as given below.
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case 0:
_move1();
break;
case 1:
_move2();
break;
case 2:
_move3();
break;
}
return super.onOptionsItemSelected(item);

5. If you want to enable 'home' button in Action Bar alongwith the OptionsMenu, follow the steps given below.

a. Add an add source directly block at the beginning of onCreate event, then put following code in it.
getActionBar().setDisplayHomeAsUpEnabled(true);

And to change the icon add icon ic_dehaze_white using Image manager and then add following after the code above.
getActionBar().setHomeAsUpIndicator(R.drawable.ic_dehaze_white);

b. Now in more Block extra, in onOptionsItemSelected add the case of selecting home button. The code for onOptionsItemSelected should now look as given below.
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case 0:
_move1();
break;
case 1:
_move2();
break;
case 2:
_move3();
break;
case android.R.id.home:
showMessage("Home Button Clicked");
break;
}
return super.onOptionsItemSelected(item);

6. Save and Run the project. Now you can see the home button as well as the OptionsMenu on the ActionBar.


Comments

Popular posts from this blog

Create Music Player app in Sketchware

To create a Music Player app in sketchware, follow the steps given below. 1. Create a new project in Sketchware. 2. In VIEW area on main.xml, add a ListView  listview1  with height wrap_content, and weight 1. Add a SeekBar  seekbar1 , an ImageView  imageview1 , and three TextViews  textview1 ,  textview2 , and  textview3 , as shown in the image below. 3. Create a CustomView  mycustom.xml  and add a TextView  textview1 , and an ImageView  imageview1  in it. For listview1 select mycustom.xml as it's customView. 4. Add a MediaPlayer component  mp , a Shared Preferences component  sp:sp  and a Timer component  timer . 5. Create six More Blocks  MPcreate(pos), MPstart , and  MPpause  for the MediaPlayer and  searchFolders ,  getFileList in [filePath]  and  extra . 6. Add three number variables  n, r  and  songPosition , and five String variables  currentfile ,  songMinutes ,  songSeconds ,  folder ,  folderName . Also add a List String  folderList,  List String  fileList  and a List Map

Admob rewarded video Ads in Sketchware

To integrate Admob Rewarded Video Ads to a Sketchware project, follow the steps given below. Prerequisites An Android project (Sketchware project) Account in Admob Always place the test ad unit ID before placing your ad unit ID. App ID and ad unit ID can be obtained by registering the app on Admob. But for using test ads no registration is required. Do not click on your own Ads. 1. Create an android project in Sketchware. 2. Add the app to your Admob account. For your app, generate an ad unit ID for Rewarded Video Ads. 3. In Sketchware project, navigate to  Library Manager  and open Admob settings. i. Click on Add manually and add the ad unit ID generated on Admob website, or use test ad unit ID ca-app-pub-3940256099942544/5224354917. ii. If you are not using any banner or interstitial ad units, select the same ad unit ID for both banner and interstitial ads. iii. Add Test Device automatically shown by Sketchware. iv. Save it. v. Switch ON Admob and AppCompat and design. 4. In this exa

Firebase auth in Sketchware for Login Activity

To create a login activity using Firebase Auth in Sketchware, follow the steps given below. This method uses Firebase authentication service for creating login. 1. In your Firebase account, go to Firebase authentication. 2. In Firebase authentication web set-up, go to SIGN-IN method, and enable Email/password and Anonymous. 3. Go to Project settings in your Firebase project and copy the Web API Key, Project ID, and App ID. 4. Paste the Project ID, App ID, and Web API Key in your project in Sketchware, in the Firebase settings. 5. On the  MainActivity  page add a File Shared preferences component  user:user  and an Intent  i . Also add a Timer  t  and a Firebase Auth  testlogin . 6. Create a new page  login.xml  with Activity called  LoginActivity . 7. In  onCreate  event of MainActivity use blocks as shown in image below. It identifies main page with  File user key page . It also checks if user is logged in to  FirebaseAuth . If user is logged in then other blocks are executed. If user