Jumat, 09 Januari 2015

Menu Demo



Menu Demo


Code pada activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.duwibayupratomo.menudemo.MainActivity"
    tools:ignore="MergeRootFrame">
   
    <EditText
        android:id="@+id/txtBox1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:text="Hello world" />

       <EditText
       android:id="@+id/txtBox2"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_margin="5dp"
       android:text="Hola mundo" />
       <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:text="Press theMENU key, or \nLong-press text-boxes"/>

</LinearLayout>

Code pada MainActivity.java
package com.duwibayupratomo.menudemo;

import android.R.color;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Html;
import android.text.Spanned;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.os.Build;

public class MainActivity extends Activity {
      
       EditText txtBox1;
       EditText txtBox2;
       Integer[]arrayPointSize={10,20,30,40,50};

       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);

              if (savedInstanceState == null) {
                     getFragmentManager().beginTransaction()
                                  .add(R.id.container, new PlaceholderFragment()).commit();
              }
              txtBox1=(EditText)findViewById(R.id.txtBox1);
              txtBox2=(EditText)findViewById(R.id.txtBox2);
              //youmayregisteranindividualcontextmenuforeach
              registerForContextMenu (txtBox1);
              registerForContextMenu (txtBox2);
       }
      
       public void onCreateContextMenu(ContextMenu menu,View v,
                     ContextMenuInfo menuInfo){
                     //decidewhatcontextmenuneedstobemade
                     if(v.getId() == txtBox1.getId())
                     //createamenufortxtBox1box populateMyFirstMenu(menu);
                     if(v.getId() == txtBox2.getId()){
                     //createamenufortxtBox2box populateMySecondMenu(menu);
                     }
       }

       @Override
       public boolean onCreateOptionsMenu(Menu menu) {

              // Inflate the menu; this adds items to the action bar if it is present.
              getMenuInflater().inflate(R.menu.main, menu);
              populateMyFirstMenu(menu);
              return true;
       }

       private void populateMyFirstMenu(Menu menu) {
              // TODO Auto-generated method stub
              int groupId = 0;
              //arguments:groupId,optionId,order,title
              menu.add(groupId,1,1,"10points");
              menu.add(groupId,2,2,"20points");
              menu.add(groupId,3,3,"30points");
              menu.add(groupId,4,4,"40points");
              menu.add(groupId,5,5,"50points");
              menu.add(groupId,6,8,"Redtext");
              menu.add(groupId,7,7,"GreenText");
              menu.add(groupId,8,6,"Bluetext");
       }
      
       private void populateMySecondMenu (Menu menu) {
              int groupId = 0;
              //arguments:groupId,optionId,order,title
              menu.add(groupId, 9,1,"Bold");
              menu.add(groupId,10,2,"Italic");
              menu.add(groupId,11,3,"Normal");
       }
      
       @Override
       public boolean onContextItemSelected (MenuItem item){
       return applyMenuOption(item);
       }
      

       @Override
       public boolean onOptionsItemSelected(MenuItem item) {
              // Handle action bar item clicks here. The action bar will
              // automatically handle clicks on the Home/Up button, so long
              // as you specify a parent activity in AndroidManifest.xml.
              int id = item.getItemId();
              if (id == R.id.action_settings) {
                     return true;
              }
              //return super.onOptionsItemSelected(item);
              return applyMenuOption(item);
       }

       /**
        * A placeholder fragment containing a simple view.
        */
       public static class PlaceholderFragment extends Fragment {

              public PlaceholderFragment() {
              }

              @Override
              public View onCreateView(LayoutInflater inflater, ViewGroup container,
                           Bundle savedInstanceState) {
                     View rootView = inflater.inflate(R.layout.fragment_main, container,
                                  false);
                     return rootView;
              }
       }
       private boolean applyMenuOption(MenuItem item){
              int menuItemId=item.getItemId();//1,2,3,...11
              String strMsg2=txtBox2.getText().toString();
              if(menuItemId<=5){
              //firstfiveoptionareforsettingtextsize(10pt,20pt,...)
                     int newPointSize = arrayPointSize[menuItemId-1];
                     txtBox1.setTextSize(newPointSize);
                     txtBox2.setTextSize(newPointSize);
              }
              else {
              //eitherchangecolorontxtBox1orstyleontxtBox2
              if (menuItemId==6) txtBox1.setTextColor(color.background_dark|Color.RED);//red
              else if (menuItemId == 7) txtBox1.setTextColor(0xff00ff00);//green
              else if(menuItemId==8) txtBox1.setTextColor(0xff0000ff);//blue
              else if(menuItemId==9) txtBox2.setText(beautify(strMsg2,"BOLD"));//bold
              else if(menuItemId==10) txtBox2.setText(beautify(strMsg2,"ITALIC"));//italic
              else if(menuItemId==11) txtBox2.setText(beautify(strMsg2,"NORMAL"));//normal
              }
              return false;
              }
      
       private Spanned beautify(String originalText,String selectedStyle){
              Spanned answer=null;
              if(selectedStyle.equals("BOLD"))
              answer=Html.fromHtml("<b>"+originalText+"</b>");
              else if(selectedStyle.equals("ITALIC"))
              answer=Html.fromHtml("<i>"+originalText+"</i>");
              else if(selectedStyle.equals("NORMAL"))
              answer=Html.fromHtml("<normal>"+originalText+"</normal");
              return answer;
              }//beautify
             

}


Tidak ada komentar:

Posting Komentar