ex_contents.xml ( No.1 ) |
|
日時: 2015/10/26 15:33
名前: lightbox
|
日時: 2015/10/26 15:33 名前: lightbox
android:datePickerMode"spinner" は、年月日を全て上下スクロールで選択する為に必要です
|
ex_contents2.xml ( No.2 ) |
日時: 2015/10/26 10:20 名前: lightbox
|
Syain クラス( Data Binding と Google Gson 兼用 ) ( No.3 ) |
日時: 2015/10/28 01:06 名前: lightbox
拡張子:
package sample.lightbox.androidbind1017;
import android.databinding.BaseObservable;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.DatePicker;
import android.widget.NumberPicker;
import android.widget.Spinner;
import java.util.Arrays;
public class Syain extends BaseObservable {
// シリアライズ・デシリアライズをしない( static )
static public MainActivity context = null;
// NumberPicker 用
static public NumberPicker np = null;
static public String[] nums = {"男性","女性","不明"};
static public int[] values = {-10,20,100};
// Spinner 用
static public Spinner sp = null;
// DatePicker 用
static public DatePicker dp = null;
public String scode;
public String kj;
public String furi;
public String syozoku;
public String seibetu;
public String kyuyo;
public String teate;
public String kanri;
public String birth;
public String sname;
public Syain() {
this.scode = "";
this.kj = "初期状態";
this.furi = "";
this.syozoku = "";
this.seibetu = "";
this.kyuyo = "";
this.teate = "";
this.kanri = "";
this.birth = "";
this.sname = "";
}
// ******************************************
// NumberPicker 用
// ******************************************
public void setupSeibetuControl() {
np.setMinValue(0);
np.setMaxValue(2);
np.setDisplayedValues(nums);
np.setValue(1);
}
public void setSeibetuControl(String seibetu) {
if ( seibetu != null ) {
this.seibetu = seibetu;
}
np.setValue(Integer.parseInt(this.seibetu));
}
public void getSeibetuControl() {
this.seibetu = Integer.toString(np.getValue());
}
// ******************************************
// Spinner 用
// ******************************************
public void setupSyozokuControl(String[] list_data) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
context,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.addAll(list_data);
sp.setAdapter(adapter);
}
public void setSyozokuControl(String syozoku,String[] list_value) {
if ( syozoku != null ) {
this.syozoku = syozoku;
}
int idx = Arrays.binarySearch(list_value,this.syozoku);
sp.setSelection(idx);
}
public void getSyozokuControl(String[] list_value) {
int idx = sp.getSelectedItemPosition();
this.syozoku = list_value[idx];
}
// ******************************************
// DatePicker 用
// ******************************************
public void setupBirthControl(Boolean spinners, Boolean calendar) {
dp.setSpinnersShown(spinners);
dp.setCalendarViewShown(calendar);
}
public void setBirthControl(String birth) {
if ( birth != null ) {
this.birth = birth;
}
if ( this.birth != null ) {
String dt[] = this.birth.split("-");
if ( dt.length == 3 ) {
dp.updateDate(Integer.parseInt(dt[0]), Integer.parseInt(dt[1])-1, Integer.parseInt(dt[2]));
}
}
}
public void getBirthControl() {
this.birth = String.format("%d/%d/%d",dp.getYear(),dp.getMonth()+1,dp.getDayOfMonth());
}
}
対応する JSON
▼ サンプル URL
http://winofsql.jp/dbdata2_json.php?scode=0001
|
dbdata2_json.php のソースコード ( No.4 ) |
日時: 2015/10/26 15:54 名前: lightbox
拡張子:
<?php
header( "Content-Type: application/json; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
header( "Access-Control-Allow-Origin: *" );
$server = 'サーバー';
$db_name = 'データベース';
$user = 'ユーザ';
$password = 'パスワード';
$json_type = JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT;
$db_data_type = MYSQLI_ASSOC;
// 接続
$connect = new mysqli($server, $user, $password, $db_name);
if ($connect->connect_error) {
die('Connect Error (' . $connect->connect_errno . ') '
. $connect->connect_error);
}
$connect->set_charset("utf8");
$_GET["scode"] = str_replace("'","''",$_GET["scode"]);
$query = <<< QUERY
select
社員コード as scode,
氏名 as kj,
フリガナ as furi,
所属 as syozoku,
性別 as seibetu,
給与 as kyuyo,
手当 as teate,
管理者 as kanri,
生年月日 as birth,
コード名称マスタ.名称 as sname
from 社員マスタ
left outer join コード名称マスタ
on 社員マスタ.所属 = コード名称マスタ.コード
where コード名称マスタ.区分 = 2
and 社員コード = '{$_GET["scode"]}'
QUERY;
// クエリ
$result = $connect->query($query);
if ( !$result ) {
die('クエリーに誤りがあります : ' . $connect->error );
}
$check = false;
while ($row = $result->fetch_array($db_data_type)) {
$check = true;
print json_encode($row,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
print "\n";
}
// 開放
$result->close();
// 接続解除
$connect->close();
if (!$check) {
print <<< ERROR
{
"scode": "{$_GET["scode"]}",
"kj": "ERROR",
"furi": null,
"syozoku": null,
"seibetu": null,
"kyuyo": null,
"teate": null,
"kanri": null,
"birth": null,
"sname": null
}
ERROR;
}
?>
|
002.php ( WebView に表示して、dbdata2_json.php を呼び出して Android に返します ) ( No.5 ) |
日時: 2015/10/26 15:57 名前: lightbox
|
|
|
|