雑記帳

趣味や仕事の備忘録などを気分で書いてみます

Java 配列の宣言とインスタンス生成

配列をあまり使わないので、メモ。

配列インスタンスの生成・初期化

初期化演算子を使用して参照の代入を行う

int[] array = {1,2};

newを使用する場合は以下のように記述する。

int[] array = new int[]{1,2};

下記のように大かっこ[]の中に要素数を記述した場合はコンパイルエラーとなる。

int[] array = new int[2]{1,2};

配列の要素数を指定する場合、以下のように記述する。

int[] array = new int[2];

多次元配列

int[][] array = {{1,2},{3,4}};

XML XML宣言の記述

XML宣言では、XML文書であることを宣言する。

<?xml version="XML規格のバージョン番号"
      encoding="文字エンコーディング名"
      standalone="外部サブセット参照の有無{yes|no}" ?>

version

XML規格のバージョン番号を記載する。
必須。

encoding

どのエンコーディングを使用するかを指定する。
省略した場合、UTF-8となる。

standalone

XML文書がほかの外部ファイルを参照するのかを指定する。
外部ファイルを参照する場合は"no"を指定する。
参照しない場合は"yes"を指定する。
省略した場合、"no"となる。

XML CDATAセクション

XMLでCDTATAセクションを扱ったことがなかったのでメモ。

XMLでは「<」や「>」などは実体参照に置き換える必要がある。

CDATAセクションを使用した場合、置き換えが不要となる。

<![CDATA[テキストデータ]]>

沢山置き換えが必要になる場合、CDATAセクションを使用することで記述が楽になりそう。

参考文献はこちら↓

XMLマスター教科書 ベーシックV2

XMLマスター教科書 ベーシックV2

Oracle ORA-01950でエラー

仕事で使っている開発環境のDBを11gから12cに変更する際に発生したのでメモ。
CREATE TABLEを行う際に、表領域に対する権限がないということで、エラーが発生。

とりあえず、ユーザに対して、UNLIMITED TABLESPACEシステム権限を付与して、回避。

GRANT UNLIMITED TABLESPACE TO USER名

Android android.os.NetworkOnMainThreadExceptionが発生

WebAPIから情報を取得しようと、HTTPリクエストを行うと、android.os.NetworkOnMainThreadExceptionが発生しました。
メインスレッドから外部ネットワークに接続しようとすると怒られるみたいです。
Android3.0以上から?

対策方法としては別スレッドでHTTPリクエストを行う。
AsyncTaskLorder?を使うと良いらしい。
勉強してみます。

Android Studioでの選択範囲のコメント化とコメント化解除方法

VisualStudioみたいに選択範囲をコメントアウトしようとしたら、方法がわからなくて調べたのでメモ。
コメント化とコメント化解除は同じ操作で可能でした。
Javaコード、XMLのどちらに対しても有効でした。

行コメント化(//でコメント)

下記のメニューを実行します。
Codeメニュー⇒Comment with Line Comment
ショートカットキーは

Ctrl + /
ブロックコメント化(/* ~ */でコメント)

下記のメニューを実行します。
Codeメニュー⇒Comment with Block Comment
ショートカットキーは

Ctrl + Shift + /

Android ボタンクリック処理の実装

Androidアプリでボタンクリック処理の実装方法についてメモします。

ボタンに対して、OnClickListnerをセットして、クリックイベントを拾えるようにします。

OnClickListnerインターフェースの実装

クラスの宣言に"implements View.OnClickListener"を追加します。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

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

ボタンにOnClickListnerをセットする

ButtonクラスのSetOnClickListnerメソッドを使用します。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

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

        findViewById(R.id.button1).setOnClickListener(this);
    }
}

OnClickメソッドの実装

ボタンがクリックされるとOnClickメソッドが呼び出されます。
OnClickメソッドの引数のViewでボタンを判別して処理を分けることができます。
下記のコードではクリック時にトーストを表示させます。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

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

        findViewById(R.id.button1).setOnClickListener(this);
    }
}
    @Override
    public void onClick(View aView) {
        switch (aView.getId()) {
            case R.id.button1:
                buttonClick();
                break;
            default:
                break;
        }
    }

    private void buttonClick() {
        Toast.makeText(this, "test", Toast.LENGTH_SHORT).show();
    }
}