การขอ Permission ด้วยไลบรารี EasyPermissions

ในกรณีที่ขอสิทธิ แล้ว user ไม่ให้สิทธิ เมื่อ user เข้าใช้งานครั้งต่อไป ก็จะขึ้น dialog ขึ้นมาถาม user ใหม่ และถ้า user ไม่ให้สิทธิและไม่ให้ถามอีก ก็จะมี dialog มาแนะนำให้ user ไปหน้า setting ของ app เพื่อปรับเปลี่ยนสิทธิให้ app

Continue reading

การขอ Permission ด้วยไลบรารี SimplePermissions

Permission ในระบบ android แบ่งได้เป็น 2 ชนิดคือ

  • Normal Permission กรณีนี้ไม่จำเป็นต้องขอ Runtime Permission
  • Dangerous Permission จำเป็นต้องขอ Runtime Permission

แต่อย่างไรก็ตาม ต้องขอ Permission ในไฟล์ AndroidManifest.xml ด้วย

Continue reading

การฝัง WebView ในแอพ

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.phaisarn.mywebview">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

MainActivity.java

package com.phaisarn.mywebview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

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

        WebView webView1 = new WebView(this);
        setContentView(webView1);

        WebSettings webSettings = webView1.getSettings();
        webSettings.setJavaScriptEnabled(true);

        webView1.setWebViewClient(new WebViewClient());

        webView1.loadUrl("http://google.com");
    }
}

บรรทัดที่ 23 กำหนดให้แสดงเว็บเพจในแอพ

Link

การขอหลาย Permission

การขอ Permission หลายๆอย่าง โดยทำการตรวจสอบ ว่า permission ไหนที่ยังไม่มีก็ทำการขอ โดยตัวอย่างเป็นการขอสิทธิเข้าถึงที่เก็บข้อมูล และขอสิทธิเข้าถึงตำแหน่ง

Continue reading

Android/Java การสร้าง RecyclerView

ใช้ RecyclerView แสดงรายการแบบ list ทำให้สามารถแสดงรายการจำนวนมากๆได้

  1. ใช้งาน RecyclerView
  2. ปรับแต่งเส้นคั่นด้วยไลบรารี่ RecyclerView-FlexibleDivider
  3. วาดตัวอักษรด้วยไลบรารี่ TextDrawable

ไฟล์ที่เกี่ยวข้อง

  • build.gradle (Module: app)
  • activity_main.xml
  • MainActivity.java
  • values/colors.xml
  • drawable/item_state.xml
  • layout/custom_layout.xml
  • CustomItem.java
  • CustomHolder.java
  • CustomAdapter.java
Continue reading

สร้างไฟล์ Excel ด้วย C#, NPOI และคลาส NpoiExport

Program.cs

using NPOI.HSSF.UserModel;
using System;
using System.Data;
using System.IO;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            HSSFWorkbook workbook = new HSSFWorkbook();
            var sheet1 = workbook.CreateSheet("Sheet1");
            var sheet2 = workbook.CreateSheet("Sheet2");

            DataTable dt = new DataTable();
            dt.Columns.Add("ชื่อ");
            dt.Columns.Add("Email");
            DataRow row1 = dt.NewRow();
            row1["ชื่อ"] = "Jack";
            row1["Email"] = "mr.phaisarn@gmail.com";
            dt.Rows.Add(row1);
            DataRow row2 = dt.NewRow();
            row2["ชื่อ"] = "Example";
            row2["Email"] = "example@gmail.com";
            dt.Rows.Add(row2);

            string fixedWidthColumn = "0-4000,1-4000,2-6000";
            var exporter = new NpoiExport(fixedWidthColumn);
            exporter.ExportDataTableToWorkbook(dt, "Export_Data");
            exporter.ExportDataTableToWorkbook(dt, "Export_Data2");

            string localFullPath = AppDomain.CurrentDomain.BaseDirectory;
            FileStream FileStreamObject = new System.IO.FileStream(localFullPath + @"Export_Excel.xls", FileMode.Create, FileAccess.Write);
            FileStreamObject.Write(exporter.GetBytes(), 0, exporter.GetBytes().Length);
            FileStreamObject.Close();
        }
    }
}
Continue reading