Eclipseのレイアウトエディターの日本語文字化け回避の裏技?

Eclipseのレイアウトエディターでは表示される日本語が文字化けするのは周知の事実だが、今日面白いことを発見した。

1つ目、レイアウトエディターでは必ずしも文字化けするわけではない。

残念ながら画面はお見せできないが、普通に日本語が表示できている。
もちろん何か特殊なことをしたわけではなく、単純にtext属性に日本語を打っただけ。
環境依存の可能性は否定できないが、TextViewやEditTextには日本語が対応してる?まずこれを作成してから、他のViewをつくると文字化けが発生しなかった。

なお、途中から文字化けが発生しだして、既存のView以降に作成したViewはガッツリ文字化けしちゃいました。

2つ目。これが裏技?です。
本番では利用できないが、レイアウト作成中なんかに役に立つかもしれない。
安定して日本語を表示させる方法です。

方法:
    日本語打って末尾に半角文字入れる。おわり。
例:
    "あああああx"や"おはようございます|"


嘘みたいだけど、これで安定して表示できました。
私のところだけかもしれませんが・・・・。お試しあれ

EditTextのonTextChangedのoverride

onTextChangedをoverrideするのはEditTextを継承するだけでよかったのか・・・
TextWatcherを実装しなくてもよかったのね。

TextWatcherを実装すると、onTextChangedが2度呼ばれる。ふしぎ!

と思って、リファレンス見たらEditTextもTextWatcherもonTextChangedという同名メソッド持ってるから2回呼ばれちゃうの?

beforeTextChanged->onTextChanged->afterTextChangedの3つだけしか呼びたくない場合はどうしたらいいんだろう。現状onTextChangedが2度呼ばれるんだよねぇ

画面の向きの取得方法

Android Wiki* 画面の向き(ScreenOrientation) より引用

現在の画面の向きはActivityから下記のように取得できます。

Configuration config = getResources().getConfiguration();
// Landscape(横長)
if(config.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    Toast toast = Toast.makeText(this, "Landscape", Toast.LENGTH_SHORT);
    toast.show();
} 
// Portrait(縦長)
else if (config.orientation == Configuration.ORIENTATION_PORTRAIT) {
    Toast toast = Toast.makeText(this, "Portrait", Toast.LENGTH_SHORT);
    toast.show();
}
// Square(正方形) エミュレータではこの値は返って来ない。
else if (config.orientation == Configuration.ORIENTATION_SQUARE) {
    Toast toast = Toast.makeText(this, "Square", Toast.LENGTH_SHORT);
    toast.show();
}

Androidで画面を縦横固定する方法

KamoLand Androidで画面を縦横固定する方法より引用

以下のメソッドをActivityクラスに記述して,呼び出せばOK

	/**
	 * 縦横固定の設定をActivityに適用する
	 * @param fixOrient 固定するならtrue,回転するように戻すならfalse
	 */
	private void controlOrientationFix(boolean fixOrient) {
		if (fixOrient) {
			int ori = getResources().getConfiguration().orientation;
			if (ori == Configuration.ORIENTATION_LANDSCAPE) {
				setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
			} else {
				setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
			}
		} else {
			setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED );
		}
	}

開発TIPSメモ

eclipseのLogcatが真っ白になってしまったとき。
 → 1) ecpliseをシャットダウンする
   2) コマンドプロンプトで${androidSDK Root Dir}\tools\へ移動
   3) 「adb kill-server」と入力
   4) 「adb start-server」と入力。successfulと表示されるのを確認
   5) eclipse起動→直ってる

エミュレータを回転させる
 → 左Ctrl + F12キー

エミュレータトラックボール表示
 → DELキー押しっぱなしでボール出現。マウスでグリグリ