残念な子の覚書

残念な子の覚書

忘れないように日々書いていこうと思います。

Amebaでブログを始めよう!
どっかのAB蔵みたいなことにはならない様、気を付けますw

フォーカスを持たせたくない場合(ソフトキーボードで入力させない場合)
 android:focusable="false"

1行のみ
 android:singleLine="true"

文字数制限(この場合100文字)
 android:maxLength="100"

文字列寄せ
 android:gravity="left"

文字サイズの指定
 android:textSize="22sp"

SQLiteの関数はその他のSQL文で使用されているものが、なかったりするので気を付けましょう。

TOP関数と同じ結果を返してくれるのはLIMITです。

ダブルタップを実装しようとしてもイマイチ要領をつかめなかったので、
アホの子なりに解説をしてみます。
↓このあたりを見て分らなかった人は読んでください。という記事です。


http://www.hoge256.net/2009/09/462.html
http://www.adakoda.com/adakoda/2009/07/android-android-15gesturedetectorondoubletaplistener.html

ダブルタップを実装するにあたり、「GestureDetector」というインターフェースを実装します。
implementsに追記すると「実装してないメソッドがあるぞゴルァ」と言われますので、
ちょちょいとオーバーライドします。


ポイントとしてはここから!

GestureDetectorをonCreateでnewします。
つぎに、onTouchEvent若しくはonTouchメソッド内で下記コードにてタップを取得します。


if(this.gestureDetector.onTouchEvent(event)) return true;

これでダブルタップ等々のメソッドが呼ばれるようになるので、そこにタップ時の処理を書くだけです。 


androidにはラジオボタンを纏めて使えるようになってるのですが、コイツのクリアが案外曲者だったりします。

grpRadio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId)
{
//ここにイベント時処理
}
});

こんな感じでイベントを記述します。
この場合だと、クリア自体はgrpRadio.clearCheckでOKなんですが、
onCheckedChangedイベントのcheckeIdに-1が返ってきますので、↓のようにしておくと誤動作を防げます。

grpRadio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId)
{
if(checkedId != -1){
//ここにイベント時処理
}
}
});

簡単ですね!

spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
//えらんだとき
}
public void onNothingSelected(AdapterView<?> parent)
{
//何もえらばんかったとき
}
});

こんなソースを書いてみたんだけど、1度選択したアイテムをもう一度選択しても何もイベントが起こらない…
また時間あるときにしらべよう…

わすれない内に書いておこうと思います。
EditTextでフォーカスを受け取った時、離れた時のイベントハンドリングです。

    txtEDIT.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
//受け取った時
}else{
//離れた時
}
}
});

という感じです。
参考にしてください。

レイアウトをしていく際に、右寄せに配置だったり下部に​配置したい時に大変便利なのですが、
ちょっとこの2つは違いが分かりにくかったので書き残しておこうと思います。


layout_gravity⇒レイアウト自体の重み
gravity⇒レイアウトが囲っているものの重み


つまり、LinearLayout自体を右寄せ~とかだったらlayout_gravityを使う。
LinearLayout内のウィジットを左寄せ~とかだったらgravityを使う。
TextView等のテキストもgravityを使う。


ちなみに、記述としてはandroid:gravity="left"とか書くんですが、
android:gravity="bottom|left"というようにパイプで複数個の値をセットすることも可能です。


メモリ解放でもお世話になるRuntimeと、
DataOutputStreamを使用します。


/**サンプル*/
// root取得してサスペンドイベントを投げる
private
void suspend() {

    try {
        Process p = Runtime.getRuntime().exec("su");
        DataOutputStream dos = new DataOutputStream(p.getOutputStream());

        dos.writeBytes("sendevent /dev/input/event0 1 142
1\n"); // 押す

        dos.writeBytes("sendevent
/dev/input/event0 1 142 0\n"); // 離す

        dos.writeBytes("exit\n");
    } catch (IOException e) {

        e.printStackTrace();
    }



せっかくスクロールできるビューを使っても、
右端と最下部に2~3mm隙間ができてしまいます。

スクロールバーを常時表示していれば良くわかりますが、
スクロールバーの表示領域を確保しています。


なので、XMLの中でScrollViewに
android:scrollbarStyle="insideOverlay"をScrollViewに指定してくだい。​

ビューに被ってしまいますが、綺麗に表示できるハズです。