Android アプリ開発
Android アプリ開発のポイントは、2点です。
準備:サンプルAndroid アプリの利用
Android は詳しくないので、サンプルソース(generic_asynctask-master)を利用しました。
参照先:https://github.com/kosalgeek/generic_asynctask
このサンプルコードは、エラーで悩むことになりましたが下記で解決できました。
ちょっと解説
利用時の注意点
1.利用者が手を加える必要があるソース(業務ロジック)は、MainActivity.javaのみで対応可能です。
2.このサンプルコードのままでは、パラメタ設定処理ができない箇所があるので修正が必要です。
原因と対処方法がわからず、オオハマりのポイントでした。
消し線の行を、以下に修正が必要です。引数が不足しています。
// PostResponseAsyncTask task = new PostResponseAsyncTask(MainActivity.this, postData, MainActivity.this); //
1.PHPアプリの起動方法
PHPアプリを起動する際に、画面項目情報をパラメタとしてセットします。
// Send data try { // Defined URL where to send data HashMap<String, String> postData = new HashMap<String, String>(); postData.put("usernum", Xuser_num ); postData.put("name", Xuser_name); postData.put("addr", Xuser_addr ); PostResponseAsyncTask task = new PostResponseAsyncTask(MainActivity.this, postData, MainActivity.this); task.execute("http://192.168.1.3/php_select.php");//select } catch (Exception ex) { }
postData.putで、連携時の必要な値をセットしていきます。
ここでは、”usernum”に Xuser_numなどがセットされて、連携時に
usernum=XXXX&name=XXXX&addr=XXXXの形式に編集してくれます。
2.PHPアプリからのデータ受け取り
PHP処理後、「項目:output」で受け取りますので、「#」を区切り文字にして画面にセットします。
受け取り後は、I/Fの仕方とAndroidの作りによるので、参考まで。
PHPからの戻りデータ: “name=#ZZZZZZ#YYYYYYY”#“;
ZZZZZZ:名前、YYYYYYY:住所
String xxx[] = output.split("#", 0); if (xxx[0].equals("name=")){//最初の文字で正常・異常の判断 <pre><code>Tname.setText(xxx[1]);//名前 Taddr.setText(xxx[2]);//住所 </code></pre> }else{ <pre><code>Tmsg.setText(&quot;エラー&quot;); </code></pre> }
関連記事