วันจันทร์ที่ 17 มีนาคม พ.ศ. 2557

[Android] Share ข้อความ String ด้วย Action Send

สวัสดีครับทุกท่าน นอกจากการใช้ API ของตัว Social นั้นๆ แล้ว ยังมีอีกวิธีนึงที่เราจะแชร์รูปหรือแชร์ข้อความออกไปได้โดยผ่าน Activity นั้นก็คือ Action Send

จุดประสงค์ของครั้งนี้
1. สร้างปุ่ม Share ขึ้นมา เมื่อกดปุ่มแชร์ส่งข้อความหรือรูปออกไป
2. แชร์ข้อความ String ตัวข้อความผมขอกำหนดเองเลยนะครับ เราสามารถใช้ช่อง Text input ได้เหมือนกัน แต่เพื่อความสะดวกครับ
3. แชร์รูป โดยผมจะแชร์ Image รูปสุดท้ายใน Album (เพื่อความสะดวกของผม)

เริ่มแรกเราต้องสร้าง XML ไฟล์สำหรับใส่ปุ่มของเราก่อนนะครับ อันนี้ผมใช้ activity_main.xml ที่ได้จากการ New Project เลย

activity_main.xml
1:  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
2:    xmlns:tools="http://schemas.android.com/tools"  
3:    android:layout_width="match_parent"  
4:    android:layout_height="match_parent"  
5:    tools:context=".MainActivity" >  
6:    <Button  
7:      android:id="@+id/main_share"  
8:      android:layout_width="wrap_content"  
9:      android:layout_height="wrap_content"  
10:      android:layout_centerVertical="true"  
11:      android:layout_centerHorizontal="true"  
12:      android:layout_below="@+id/main_take"  
13:      android:onClick="onShare"   
14:      android:text="Share" />  
15:  </RelativeLayout>  
สังเกตว่าผมใส่ android:onClick="onShare" เอาไว้ เราจะเอาไว้ใส่ function เมื่อกดปุ่มกัน
เราจะได้ layout ออกมาแบบนี้นะครับ
ต่อมาเราจะมาส่งข้อความ String กันนะครับ โดยเราจะทำกันในส่วนของ Java Code ซึ่งผมจะใช้เป็น MainActivity.java ที่ได้มาตั้งแต่ตอนสร้าง Project นะครับ

เราจะส่งแชร์ข้อความโดยเริ่มสร้าง Intent ของ Action_send ก่อนครับ

 final Intent share = new Intent(Intent.ACTION_SEND);  
จากนั้นเราก็กำหนด ชนิดของ object ที่เราจะส่งออก ซึ่ง "text/plain" คือเราจะส่งออกเป็น text

 share.setType("text/plain");  

สุดท้ายเราจะใส่ String ของเรา
 share.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");  

"This is my text to send." คือ String ที่ผมจะส่งออกไปครับ เราสามารถเปลี่ยนเป็นชื่อของตัวแปรแทนได้
เราจะได้ไฟล์ MainActivity.java ดังนี้

MainActivity.java
1:  public class MainActivity extends Activity {  
2:   @Override  
3:   protected void onCreate(Bundle savedInstanceState) {  
4:    super.onCreate(savedInstanceState);  
5:    setContentView(R.layout.activity_main);  
6:   }  
7:      public void onShare(View v)  
8:   {  
9:          final Intent share = new Intent(Intent.ACTION_SEND);  
10:          share.setType("text/plain");  
11:    share.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");  
12:          final String chooserTitle = "Share Snaphot";  
13:     MainActivity.this.startActivity(Intent.createChooser(share, chooserTitle));  
14:     } catch (final Exception e) {  
15:      Log.d("MyShare","Error");  
16:     }  
17:   }  
18:  }  

บรรทัดที่ 7 คือชื่อฟังก์ชั่นที่เราใส่ไว้ใน xml
บรรทัดที่ 9 คือ Intent Action Send ที่เราสร้างขึ้นมา
บรรทัดที่ 13 คือสร้างตัวเลือกเป็น Popup ขึ้นมา

เมื่อเรากดปุ่ม Share จะได้รูปแบบด้านล่าง
ซึ่งตัวเลือกของมือถือแต่ละเครื่องจะแตกต่างกัน List ที่ขึ้นมาจะเป็น Application ที่ติดตั้งอยู่ในมือถือของเรา

เสร็จแล้วครับการส่ง String ด้วย Intent Action Send ครั้งหน้าเราจะแชร์รูปกันนะครับ






ไม่มีความคิดเห็น:

แสดงความคิดเห็น