カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

アラートダイアログを表示する

AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setMessage("メッセージ");
ad.setPositiveButton("OK", new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog, int whichButton) {
    //肯定ボタンの操作
  }
});
ad.setNeutralButton("Neutral", new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog, int whichButton) {
    //中立ボタンの動作
  }
});
ad.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog, int whichButton) {
    //キャンセルボタンの動作
  }
});
ad.create();
ad.show();

キャンセルボタン等で何もせず、ダイアログを閉じるだけの場合はリスナーにnullを指定します。

ad.setNegativeButton("Cancel", null);

setViewで任意のViewを表示することも可能です。
続きを読む…»

2,288 views

数字の穴埋め

数字の0(ゼロ)で埋める

String.format("%1$02d",1) //「01」

空白で埋める

String.format("%1$3d",1) //「 1」
3,918 views

ボタンなどのクリック・タッチイベント

ボタンやイメージビューの、クリックやタッチイベントを追加します。

Button mybtn = (Button)findViewById(R.id.MyButton);

// タッチイベント
// ボタンを押すとACTION_DOWN、離すとACTION_UPが発生
mybtn.setOnTouchListener(new View.OnTouchListener(){
  public boolean onTouch(View v, MotionEvent event){
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
      //押したとき
    } else if (event.getAction() == MotionEvent.ACTION_UP) {
      //離したとき
    }

    // trueにすると他のリスナーが呼ばれない
    return false;
  }
});

// 長押しイベント
mybtn.setOnLongClickListener(new View.OnLongClickListener(){
  public boolean onLongClick(View v){
    // trueにすると他のリスナーが呼ばれない
    return false;
  }
});

// クリックイベント
mybtn.setOnClickListener(new View.OnClickListener(){
  public void onClick(View v){
  }
});

ImageViewにも使用できます。
イベントリスナーはButtonクラスでもViewクラスでもいけるようです。

11,375 views

Androidでアニメーション

ImageViewをアニメーションさせてみます。
まずはコードでアニメーションを設定する方法を紹介します。

以下のようなImageViewがあったとします。

<ImageView id="@+id/img"
  android:src="@drawable/icon"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" />

ImageViewオブジェクトを生成

ImageView img = (ImageView)findViewById(R.id.img);

移動するアニメーション【TranslateAnimation】

//TranslateAnimation(float fromX, float toX, float fromY, float toY)
TranslateAnimation translate = new TranslateAnimation(0, 10, 0, 0);
//動作時間を設定(単位ms)
translate.setDuration(1000);
//繰り返す回数を設定(1度でよい場合は設定しない)
translate.setInterpolator(new CycleInterpolator(3));
 
//アニメーションを開始
img.startAnimation(translate);

続きを読む…»

18,193 views

ListViewのクリックイベント

ActivityのonCreateで初期設定をおこなう

// アダプターを登録(レイアウトは割愛します)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item);

// 適当にアイテムを追加します
adapter.add("alpha");
adapter.add("beta");

ListView listView = (ListView)findViewById(R.id.list);
listView.setAdapter(adapter);

// リストビューのアイテムがクリックされた時に呼び出されるコールバックリスナーを登録
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  @Override
  public void onItemClick(AdapterView<?> parent, View view,
    int position, long id) {
      ListView listView = (ListView) parent;

      // クリックされたアイテムを取得します
      String item = (String) listView.getItemAtPosition(position);
      Log.v("test", item);
    }
  });
}

別にイベントクラスを作成する場合
続きを読む…»

8,063 views