著者アーカイブ asaba

asaba 著者:asaba

【react】setectタグで生年月日フォームを作る

ハイブリッドアプリ必須の開発においてはhtml5の知識が必須になりますが、中でもinputタグには誰もがお世話になっていると

思います。そのinputタグのtype(属性)の一つであるdateについて語っていきます。

このdate属性なのですが、ブラウザやデバイスによって表示が変わる仕様になっており、デバイスに至ってはtext扱いに

なってしまい使えない場合があったりと中々癖が強いオブジェクトです。

iosでは、通常のdatepickerのように上下スクロールすることで数字を選べるようになっているのですが、android(特にエクスペリア)

ではカレンダーUIとして表示される仕様になっており、年配な方やせっかちな方にとってはなかなかに見にくい構成に

なっています・・・。

 

アプリの仕様上ユーザー登録画面で生年月日を出力したかったので、一番初めに目にするであろうページでいきなり

イライラさせてしまうことは開発者としては避けたいところ。

これではいけないと思い、date以外にも様々な属性を手探りで使ってみました。(ネタばれですが結果全部不採用w)

 

まず、type=”month”ですがこれは西暦と月はピッカーで表示されるのですが日にちは対象ではないので即対象外。

次にdateTime-localですが、こちらは西暦月日にち三点全部ピッカーとして表示されます。やったネ!と思ったのですが

よく見たら時刻も必ず入力しないといけないんじゃないですかー・・・。

hiddenで非表示にできないか頑張ったのですがダメでしたね、やっぱり入力しないといけないみたいです。

先ほども言った通り生年月日なので産まれた時間まではさすがに求めてないですよ・・・。

しかもIEやfirefoxでは対応していないという仕打ち。

そのほかにも試したのですが、全部撃沈しました。

 

結局selectで生年月日をずらーっと出すようなかたちに落ち着きそうです。

こちらをreactで実装するのは比較的簡単で、まずthis.stateにyear,month,dayをコンストラクタに設定して

mapでそれぞれ西暦月日にちの配列を作ってあげて表示をします。

ただ表示するだけならこれだけでできますが、2018/3/1のように生年月日が連結されたような疑似的にdateで出力される

ような見た目にしたかったのでこんな感じにしました。

<pre>    const year = this.state.year;
    const month = this.state.month;
    const day = this.state.day;
    const birthday = ( year + '/' + month + '/' + day );
</pre>

細かいことを気にしないならば連結するだけならこんな簡単にできてしまいます。

値もしっかりとれているのでandroidでカレンダー表示のUIは嫌だよーというかたは使ってみてくださいね。

 

本日はこんな感じで終了です。よいお年を!

asaba 著者:asaba

自宅のプロバイダを知る方法

自分の使っているプロバイダを変更したい、若しくは知っておきたい時に使えるtipsです。

 

確認の方法はすごく簡単で、自分の登録しているメールアドレスの@の後ろの部分を確認するだけ!です。

例えば、hogehoge@ocn.ne.jpだった場合は、プロバイダーはOCN

foofoo@ybb.ne.jpだった場合はプロバイダーはYahoo!BB

 

簡単に確認することができますね~。

 

すみません、最近はプログラミングと関係ない話題が続きますが、年明けにまたフレッシュなプログラミングの情報を

提供出来たらなと思っています。

 

 

asaba 著者:asaba

【chrome】知っていると得する””の使い方

今日は脱線します・・・!

 

ダブルクォーテーション ”” プログラミングでは主に文字列を扱いたい時に使用しますが、chromeではこいつで検索ワードを

囲むことでその囲った文字に該当するページのみを検索できるようになります。

 

スクショだとこんな感じになります。

 

ダブルクォーテーションで囲む前ですが、検索ワードがバラされて「javaで覚える」というワードを含んだサイトを

拾うことができませんでした。この状態ではお眼鏡に適ったサイトを見つけるのは難しそうです。

 

次は、ダブルクォーテーションで「javaで覚える」を囲った時のスクショです。

 

かなりすっきりしましたねw画像の通りですが、囲った中での文字しか検索されないので目当てのサイトが見つけやすくなったと

思います。

自分はよく○○空白○○でワードを検索していますが、関係ないサイトや意図した内容とは的外れなサイトも一緒に出てきて

しまいいつもめんどくさいなと思っていたのですごく助かりました。

特にプログラミングにおいて検索は必須のツールなので使い慣れればコーディング速度と効率を改善させることができるので

覚えていて損はないと思います。

asaba 著者:asaba

【ios】メールとアーカイブとの違いtips

gmailでアドレスを登録してメールの処理をしている時にどう違うのか疑問に思ったのでメモがてら載せます。

 

アーカイブ:メールを削除しないでトレイから見れなくするだけの機能。見えないけどメール自体は保存されるので

検索をかければ見ることができます。

 

削除:メールをゴミ箱に移動させます。ゴミ箱に移動させたメールは、時間が経つと自動で削除されます。

 

 

アーカイブで非表示にしてもやはり容量は食うので、基本的には削除を使って不要なメールを消していきます。

gmailを使っているとこのアーカイブという機能を見かけますが、残っているのが気持ち悪くて嫌いなので自分は完全に削除

しています。

asaba 著者:asaba

【windows10】起動時にデスクトップが表示されない

windowsを起動してパスワードを入力したらデスクトップが表示されずに画面真っ暗になってしまいました。

その前にダメもとで再起動してみました。

やはり真っ暗の状態で表示されやっぱり長い戦いになるのかぁと俯いて落ちこんでいる間になんか復活していました。

他にもバッテリーを切らしたりタスクマネージャーで検証しながら重いアプリ消したりと解決方法は幾度とありますが

困った時は大正義・再起動ですね。

ウィルスバスターの検証とアプリの更新が同じタイミングで起きて本来最初に立ち上がるはずのシステムが邪魔されて

正常に稼働できなかった時に起きるみたいです。

あと、ビデオカードドライバがアップデートされることでも起きるみたいなので、見かけたら削除して再起動をしましょう。

予防ポイントとしては

 

・使っていないアプリはアンインストールしましょう。

 

・ウィルスバスターは複数入れずにどれか一つに絞りましょう。

 

・もし真っ暗になっても大抵は再起動でなんとかなるとポジティブに考えておきましょう。

 

三点ありますが、上記守るだけで大抵のトラブルを回避できるので頭にいれておくと捗ります。

 

参考にさせていただいたサイト

Windows 10 の画面が真っ暗になった場合のチェックポイントと対処方法

サインイン後の画面が真っ暗な時の修復方法

asaba 著者:asaba

【androidJava】MultipartBodyの使い方

今回は、ギャラリーから画像を取得してOKHttpでファイル名をアップロードすることを目的としたコードです。

 

非同期通信で画像をpost形式で送るには、MultipartBodyオブジェクトを用意します。

画像のurlを取得したりアップロードするときに主に用いられますが、通常使っている

FormBody.Builder()と形式はあまり変わりません。成功時に引数responseの中に画像の名前が格納されます。

試しに20行目のSystem.out.printlnを見れば画像の名前が取得できていると思います。

 

OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("active", "fileUpload")
.addFormDataPart("app0", resultUri.getPath(),
                RequestBody.create(MediaType.parse("image/jpeg"), String.valueOf(resultUri)))
        .build();
Request request = new Request.Builder()
        .url("http://fuga/hoge.php")
        .post(requestBody)
        .build();
client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        System.out.println(response.body().string());
    }
});

一番最初のaddFormDataPartは、画像が送られてきた時にそのurlを返すapiと仮定して書いたので、試す場合はphpなどで

代用するものを作ってください。

どうやって通信前の画像の名前を取得しているかはまた後日に書いていきたいと思います。
asaba 著者:asaba

【androidJava】READ_EXETERNAL_STORAGEは必要なかった

ギャラリーから画像を読み込む機能を開発していてパーミッション関係のエラーで躓いたのでメモします。

ペイントの動きが悪かったのでそのまま抜粋してきました。

java.lang.SecurityException: Permission Denial:

writing com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=19325, uid=10589

requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission()

 

ストレージを読み込むにはREADだけでなくWRITE_EXETERNAL_STORAGEのほうも必要だったみたいなので追加して解決。

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

このWRITE_EXETERNALSTORAGEは、READ_EXETERNAL_STORAGEの役割である読み込みも兼業しているので、実際に

マニフェストに書くのはこのWRITEのほうだけでも問題ないみたいですね。

このエラー、というかただ追加するだけの作業だったのですが、自分の備忘録を兼ねての投稿なのでそんなの知ってるよっていう

かたも多いかもしれませんがご容赦ください。

 

これでパーミッションの設定も無事にできたことなので近日にギャラリーから画像の名前を取得するコードを

載せようかと考えています。

画像を扱ったコードを正しく書ければ大分できることが増えますね~。

 

以下、参考にさせていただいたサイトです。

[Android] 外部ストレージにファイルを保存する WRITE_EXTERNAL_STORAGE

Android:KitkatのREAD_EXTERNAL_STORAGEと外部記憶領域

Androidアプリ開発「外部ストレージアクセスのパーミッション」

asaba 著者:asaba

excel操作している時に突然字が縮小する

いつも通りにエクセルで作業をしていると唐突に字が収縮・・・!?

google先生で調べた結果ctrlキーを押しながらスクロールホイールを回すと

文字が拡大したり縮小することが分かりました。

excelではをctrl + VやCなどで貼り付けコピー作業することが多いので

キーボードとマウスの両方に手を付けながら作業をしてた時に

何かの弾みで押してしまったのが原因みたいです。

マウスのスクロールホイールを前にスクロールさせると拡大

Image title

Your subtitle here

後ろ側にスクロールさせると縮小するような仕様でした。

Image title

Your subtitle here

asaba 著者:asaba

【androidJava】EditTextの内容を取得する

グーグル先生で探してもありそうでなかったEditTextの中身の取得方法です。

 


String before_text,new_text;
EditText entry_text


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

  //EditTextを紐付け
  entry_text = findViewById(R.id.getText);

  upLoadBtn.setOnClickListener(new View.OnClickListener() {
      public void onClick(View view) {
        edit();
      }
   });
}

  //edit関数定義
  public void edit(){
    new_text = entry_title.getText().toString();
  }

androidの記事は乱雑していて、しかも古い情報が多いので一つ一つ今風な書き方に合わせるのが面倒で苦労しています。

editTextは上記の書き方で問題なく取得できます。

asaba 著者:asaba

【androidJava】clientオブジェクトの呼び出しで躓く

OkHttpClient()を使ってeditTextで書いた文章を送信する機能を作ったのですが、callオブジェクトがうまく呼べなくて

通信の際にクラッシュしてしまいました。

okhttpの関数群をいったん消して適当に作った他の関数では動いたのでレイアウトとかmanifestら辺は異常なしと判断。

という訳でokHttp周りを調査。

logを辿っても具体的な原因は分かりませんでしたが、粘ってトレースした結果どうやらcallオブジェクトのenqueueでコールバックを設定

することが良くなかったためかと思われます。

ここはOkHttpClient client = new OkHttpClient();で定義したclientオブジェクトでclient.newCall(request).enqueue(new Callback() {})と

定義し直すことで無事解決。

 

失敗例↓


Call call = client.newCall(request);
call.enqueue(new Callback() {

])

 

成功例↓


client.newCall(request).enqueue(new Callback() {})