วันเสาร์ที่ 2 พฤศจิกายน พ.ศ. 2556

ShareActionProvider Example

 



ShareActionProvider Example

This is a provider for a share action. It is responsible for creating views that enable data sharing and also to show a sub menu with sharing activities if the hosting item is placed on the overflow menu.

ShareActionProvider เป็นการสร้างเมนู สำหรับ การ Share มีเมนูย่อย ให้เลือกใช้งาน

Adding an Action Provider


Similar to an action view, an action provider replaces an action button with a customized layout. However, unlike an action view, an action provider takes control of all the action's behaviors and an action provider can display a submenu when pressed.
To declare an action provider, supply the actionViewClass attribute in the menu <item> tag with a fully-qualified class name for anActionProvider.
You can build your own action provider by extending theActionProvider class, but Android provides some pre-built action providers such as ShareActionProvider, which facilitates a "share" action by showing a list of possible apps for sharing directly in the action bar (as shown in figure 6).
Because each ActionProvider class defines its own action behaviors, you don't need to listen for the action in theonOptionsItemSelected() method. If necessary though, you can still listen for the click event in the onOptionsItemSelected()method in case you need to simultaneously perform another action. But be sure to return false so that the the action provider still receives the onPerformDefaultAction() callback to perform its intended action.
However, if the action provider provides a submenu of actions, then your activity does not receive a call to onOptionsItemSelected()when the user opens the list or selects one of the submenu items.

MainActivity.java Code
package android.example.actionbarshare;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ShareActionProvider;

public class MainActivity extends Activity {
    
     private ShareActionProvider mShareActionProvider;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);    
    }
   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
   
    /** Inflating the current activity's menu with res/menu/items.xml */
    getMenuInflater().inflate(R.menu.items, menu);      
   
    /** Getting the actionprovider associated with the menu item whose id is share */
    mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share).getActionProvider();
   
    /** Setting a share intent */
    mShareActionProvider.setShareIntent(getDefaultShareIntent());
        
    return super.onCreateOptionsMenu(menu);        
    }   
   
    /** Returns a share intent */
    private Intent getDefaultShareIntent(){    
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");       
    intent.putExtra(Intent.EXTRA_SUBJECT, "SUBJECT");
    intent.putExtra(Intent.EXTRA_TEXT,"Extra Text");   
    return intent;
    }
   
}

res/menu/items.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/share"
        android:title="@string/share"
        android:showAsAction="ifRoom"
        android:actionProviderClass="android.widget.ShareActionProvider"       
    />   
</menu>




Download ShareActionProvider Example Code


สอนเขียน Android  สอนเขียนโปรแกรม Android แบบ Online

รับสอนเขียนโปรแกรม Android App สอนแบบ online สอนสด ตัวต่อตัว หรือ เป็นกลุ่ม ได้ทั่วประเทศ กำหนดเวลาเรียนได้
การเรียน Android App แบบ online สามารถกำหนดเวลาเรียน เองได้ ตามแต่ตกลงกัน
( รับสอน นอกสถานที่ แบบเป็น กลุ่ม ทั่วประเทศ )

แต่ละ Course ขึ้นอยู่กับพื้นฐานที่มี นะครับ

Course
1.JAVA Programming สำหรับผู้ที่ยังไม่มีพื้นฐานทางด้าน การเขียนโปรแกรม JAVA
เรียน 3-4 ครั้ง ครั้งละ 2 ชั่วโมง  

2.Beginning Android Development เริ่มต้นการพัฒนาด้วย Android ( ต้องมีพื้นฐาน JAVA แล้ว )
เรียน 5-6 ครั้ง ครั้งละ 2 ชั่วโมง 
เรียนจบคอร์สนี้ ก็สามารถทำ Application ได้แล้ว

3.Android Application สอนตามความต้องการในการเขียนโปรแกรม ใช้งานจริง เช่น โปรแกรมใช้งานด้านต่างๆ
ระยะเวลา และ ค่าเรียน ตามแต่ความยากง่ายของโปรแกรม ซึ่งอาจจะรวมสอน JAVA Programming ด้วยสำหรับผู้เริ่มต้นเลย
ดังนั้น ราคาสอน จะขึ้นอยู่กับ สเปคงาน

โปรแกรมที่ใช้ทำการเรียน Team Viewer  Version ล่าสุด Version 8
Meeting ID จะแจ้งให้ก่อนเรียน ผ่านทาง email sms Line หรือ อื่นๆ ตามสะดวก
ใช้ Tab Meeting ใส่ Meeting ID และใส่ชื่อ
แล้ว Join Meeting

ติดต่อ amphancm@gmail.com

CountDownTimer Example

Android CountDownTimer  Example Code

This code will pickup date form calendar then make countdown timer.
นับเวลาถอยหลัง จากปฎิทิน เลือกวันเวลาที่ต้องการ


MainActivity.java Code
package android.example.countdown;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import android.net.ParseException;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;

public class MainActivity extends Activity {
     
      TextView tvTimer;
      Button btnSet,btnStart;
    long diff;
    long milliseconds;
    long endTime;
    long startTime;
   
    static final int DATE_DIALOG_ID = 0;
    static final int TIME_DIALOG_ID = 1;
   
      // variables to save user selected date and time
      public int year, month, day, hour, minute;
     
      // declare the variables to Show/Set the date and time when Time and Date
      // Picker Dialog first appears
      private int mYear, mMonth, mDay, mHour, mMinute;

      @Override
      protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
           
            tvTimer = (TextView)findViewById(R.id.textViewTimer);
        btnSet = (Button)findViewById(R.id.buttonSet);
        btnStart = (Button)findViewById(R.id.buttonStart);
       
        btnSet.setOnClickListener(new View.OnClickListener() {                
             public void onClick(View v) {
           
              showDialog(DATE_DIALOG_ID);
             }
           });
       
        btnStart.setOnClickListener(new View.OnClickListener() {                
             public void onClick(View v) {
               
                        SimpleDateFormat formatter = new SimpleDateFormat(
                                    "dd.MM.yyyy, HH:mm");
                        formatter.setLenient(false);

                        // String newTime = "30.10.2013, 00:00";
                        String newTime = day + "." + month + "." + year + ", 00:00";
                        Date newDate;
                        try {
                              newDate = formatter.parse(newTime);
                              milliseconds = newDate.getTime();

                        } catch (ParseException e) {
                              e.printStackTrace();
                        } catch (java.text.ParseException e) {
                              e.printStackTrace();
                        }

                        startTime = System.currentTimeMillis();
                        diff = milliseconds - startTime;

                        MyCount counter = new MyCount(diff, 1000);
                        counter.start();                               
             }
           });     
    }


    // countdowntimer is an abstract class, so extend it and fill in methods
    public class MyCount extends CountDownTimer {
     
        public MyCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }

        @Override
        public void onFinish() {
            tvTimer.setText("Done!");
        }

        @Override
        public void onTick(long millisUntilFinished) {
           
            startTime = System.currentTimeMillis();
            diff = milliseconds - startTime;
                      
            int days = (int)((diff / (1000*60*60*24)) % 365);           
            long hours   = (long) ((diff / (1000*60*60)) % 24);          
            long minutes = (long) ((diff / (1000*60)) % 60);       
            long seconds = (long) (diff / 1000) % 60 ;
                   
                  tvTimer.setText(days + "  days\n" + hours + "  hours\n" + minutes
                        + "  min\n" + String.format("%02d", seconds) + " sec");          
        }
    }


      // Register DatePickerDialog listener
      private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {

            // the callback received when the user "sets" the Date in the
            // DatePickerDialog
            public void onDateSet(DatePicker view, int yearSelected,
                        int monthOfYear, int dayOfMonth) {
                  year = yearSelected;
                  month = monthOfYear + 1;
                  day = dayOfMonth;
                  // Set the Selected Date in Select date Button
                  // btnSelectDate.setText("Date selected : "+day+"-"+month+"-"+year);
                  btnSet.setText("Set to\nDate " + day + "/" + month + "/" + year);
            }
      };


  // Method automatically gets Called when you call showDialog()  method
   @Override
      protected Dialog onCreateDialog(int id) {
            switch (id) {
            case DATE_DIALOG_ID:
                 
                  // Get Date Now              
                  Calendar c = Calendar.getInstance();
              mYear = c.get(Calendar.YEAR);
              mMonth = c.get(Calendar.MONTH);
              mDay = c.get(Calendar.DAY_OF_MONTH);    
                       
                  // set current date into datepicker
                //datepicker.init(year, month, day, null);
                 
                  // create a new DatePickerDialog with values you want to show
                  return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,mDay);
                  // // create a new TimePickerDialog with values you want to show
                  // case TIME_DIALOG_ID:
                  // return new TimePickerDialog(this,
                  // mTimeSetListener, mHour, mMinute, false);

            }
            return null;
      }
      @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);
            return true;
      }
}



สอนเขียน Android  สอนเขียนโปรแกรม Android แบบ Online

รับสอนเขียนโปรแกรม Android App สอนแบบ online สอนสด ตัวต่อตัว หรือ เป็นกลุ่ม ได้ทั่วประเทศ กำหนดเวลาเรียนได้
การเรียน Android App แบบ online สามารถกำหนดเวลาเรียน เองได้ ตามแต่ตกลงกัน
( รับสอน นอกสถานที่ แบบเป็น กลุ่ม ทั่วประเทศ )

แต่ละ Course ขึ้นอยู่กับพื้นฐานที่มี นะครับ

Course
1.JAVA Programming สำหรับผู้ที่ยังไม่มีพื้นฐานทางด้าน การเขียนโปรแกรม JAVA
เรียน 3-4 ครั้ง ครั้งละ 2 ชั่วโมง  

2.Beginning Android Development เริ่มต้นการพัฒนาด้วย Android ( ต้องมีพื้นฐาน JAVA แล้ว )
เรียน 5-6 ครั้ง ครั้งละ 2 ชั่วโมง 
เรียนจบคอร์สนี้ ก็สามารถทำ Application ได้แล้ว

3.Android Application สอนตามความต้องการในการเขียนโปรแกรม ใช้งานจริง เช่น โปรแกรมใช้งานด้านต่างๆ
ระยะเวลา และ ค่าเรียน ตามแต่ความยากง่ายของโปรแกรม ซึ่งอาจจะรวมสอน JAVA Programming ด้วยสำหรับผู้เริ่มต้นเลย
ดังนั้น ราคาสอน จะขึ้นอยู่กับ สเปคงาน

โปรแกรมที่ใช้ทำการเรียน Team Viewer  Version ล่าสุด Version 8
Meeting ID จะแจ้งให้ก่อนเรียน ผ่านทาง email sms Line หรือ อื่นๆ ตามสะดวก
ใช้ Tab Meeting ใส่ Meeting ID และใส่ชื่อ
แล้ว Join Meeting

ติดต่อ amphancm@gmail.com