วิธีแก้ปัญหา Unable to get Activity จาก Facebook Library

September 17, 2015 Leave a comment

ก่อนอื่นเริ่มจากตัวเก็บ Context ใน App ของผมเป็น Singleton และ Init เก็บ Context ตอนเริ่มตั้งแต่เข้า MainApplication (Wrapper Application ที่ทำเข้ามาเอง)

ส่งผลให้ บาง Fragment ที่เรียกใช้ปุ่ม Login Facebook com.facebook.FacebookButtonBase ไม่สามารถดึง Activity จาก Context ได้ และ ThrowException ออกมาว่า Unable to get Activity (Context ที่ Init นี้ใช้ตัวเดียวทั้งระบบ)

ผมนี่นังงมอยู่นานเลย จนสุดท้ายก็ได้ความว่าผมต้องไป init Context อีกรอบในหน้า Activity ซึ่งใช้ชื่อว่า HomeActivity โดยใช้คำสั่ง

Contextor.getInstance().init(this);

หลังจาก Init ใหม่ปรากฎว่า Bug ละลายหายไป Happy Ending

Categories: Android Tags: , ,

ปิด Status bar สำหรับ MonkeyRunner

September 1, 2015 Leave a comment

หลังจากที่ได้ลอง MonkeyRunner แล้ว เอามาใช้ทดสอบได้ดีเลยครับ แต่ !!!

การคลิกที่มั่วของมัน บ้าคลั่งมาก ลาก Status bar เปิดปิด Service เละเทะ คราวนี้จึงมาแก้ปัญหา ไม่ให้มันเปิด Status bar ซะเลย

ผมลง SIMIASQUE จะลงเป็น apk ก็ได้ มันเป็น application ที่มีปุ่ม เปิดปิด status bar โดยการทำ overlay บังมันซะเลย

Activities LaunchMode demo

August 27, 2015 Leave a comment

เอาไว้ศึกษา Life Cycle Activity LaunchMode ของ Android ต่างๆ สำหรับผู้ที่ขี้เกียจเขียนเอง

Play Store

Categories: Android Tags: , ,

MonkeyRunner

August 18, 2015 Leave a comment

MonkeyRunner เป็น Test สำหรับ Android วิธีที่ผมใช้เป็นวิธีง่ายๆ คือให้มันกดมั่วๆ บนจอ ถ้า App crash ก็มานั่งแก้ Bug กันไป

ก่อนอื่นใส่ Path Environment 2 ตัวนี้ก่อน ถ้ายังไม่ได้ใส่

[Path Android Sdk]\Android\sdk\platform-tools

[Path Android Sdk]\Android\sdk\tools

แล้ว Run App ที่จะทดสอบ + เปิด CMD พิมพ์คำสั่งด้านล่าง

adb shell monkey -p com.bentoweb.pojimojimall -v 1000

1000 = ตัวเลข Event ที่จะ Inject

com.bentoweb.pojimojimall = ชื่อ Package App ที่เราจะทดสอบ

Categories: Android Tags: ,

วิธีนำ json object มาใช้แบบ order ตำแหน่งเดิม

April 19, 2015 Leave a comment

ก่อนหน้านี้ผมได้เจอปัญหาเกี่ยวกับ json object ที่ return มาจาก api

พบว่ามันไม่เรียงตามที่ server ได้ return มา

พอได้หาข้อมูล ก็เลยเจอวิธีที่จะทำให้เจ้า object ตัวนั้นเรียงตามเดิม โดยใช้ libs ที่ชื่อว่า json simple

ด้านล่างเป็น link ตัว source ที่ผมทำ demo ขึ้นมา

JsonObjectOrdered

ใครที่เจอปัญหาเดียวกัน ลองเอาไปดูได้ครับ

Categories: Android Tags: , ,

Example เก็บ Array แบบ Key Value

March 12, 2015 Leave a comment
Map<String, String> map = new HashMap<String, String>();
map.put("name", "demo");
map.put("fname", "fdemo");
// etc

map.get("name"); // returns "demo"
List<HashMap<String, String>> data = new ArrayList<HashMap<String, String>>(); 
data.add(0, map); 
data.get(0).get("name"); 
Categories: Android

เอารูปมาใส่กรอบที่ Mask เอาไว้

March 9, 2015 Leave a comment

ImageView mImageView = (ImageView) findViewById(R.id.imageView);
Bitmap original = BitmapFactory.decodeResource(getResources(), R.drawable.moomak);
Bitmap mask = BitmapFactory.decodeResource(getResources(), R.drawable.mask);

original = getResizedBitmap(original, mask.getWidth(), mask.getHeight());
Bitmap result = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Bitmap.Config.ARGB_8888);
Canvas mCanvas = new Canvas(result);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
mCanvas.drawBitmap(original, 0, 0, null);
mCanvas.drawBitmap(mask, 0, 0, paint);

paint.setXfermode(null);
mImageView.setImageBitmap(result);
mImageView.setScaleType(ImageView.ScaleType.FIT_XY);
mImageView.setBackgroundResource(R.drawable.greencard);

 

moomak mask greencard

Categories: Android

สูตรคำนวน Widget Size บน Android

March 6, 2015 Leave a comment

Minimum size in dip = (Number of cells * 74dip) – 2dip

PS. แต่พอมาใช้จริงๆ แล้วกลายเป็น row 2 cols 4
เลยต้องมาใช้ ค่าด้านล่างนี้แทน

android:minHeight=”40dp”
android:minWidth=”250dp”

ได้ 1 row cols 4 แป๊ะ !

Categories: Android Tags: , ,

เว็บสำหรับสร้าง Data Access Object (DAO) จาก Json response

January 29, 2015 Leave a comment

สำหรับผู้เน้นสบายอีกแล้วครับท่าน โยน Json เข้าไป มันจะ Generate ออกมาให้เป็น Class เลย + Getter Setter พร้อมรบ

http://www.jsonschema2pojo.org/

Categories: Android, Java Tags: ,

Android Parcelable การส่งผ่านข้อมูลระหว่าง Activity แบบ Class

January 29, 2015 Leave a comment

ในตอนแรกผมใช้ Serialize ในการส่งผ่านข้อมูลเนื่องจากง่าย แค่ implement ไปก็ใช้ได้เลย

แต่ว่าข้อเสียของมันคือทำให้ช้าเพราะ Serialize เป็นการทำ Class นั้นให้ในรูปแบบ String

แล้วโยนข้าม Activity ทั้งก้อน

คราวนี้เลยมาลองใช้ของเฉพาะสำหรับ Android กันดูบ้าง

Parcelable นั้นเท่าที่ผมลองเล่น คือการส่งแค่ Data ภายใน Class ข้าม Activity กันไปมาเท่านั้น

เช่น ฝั่ง A พอจะส่ง ก็ Write ค่าออกมา แล้วโยนข้าม Activity

พออีกฝั่งรับมาก็จะเอาจะเอาข้อมูลมา Read ลงกลับที่เดิม ดูตัวอย่างแบบง่ายๆ ที่ผมลองทำได้ที่ Url ด้านล่าง

Git hub:

https://github.com/Moomak/Demo-Parcelable-Android/tree/master/app

จากคำแนะนำของ Guru หลายคนก็บอกว่า Parcelable เร็วกว่า Serialize มาก เพราะฉะนั้นจำเป็นต้องศึกษานะครับ 🙂

แถมอีกนิด เว็บสำหรับ Generate Class ของเราให้กลายเป็น Parcelable

http://www.parcelabler.com/

Categories: Android Tags: ,