「プログラム」カテゴリーアーカイブ

Android Tips setBuiltInZoomControls

androidでGoogleマップを表示時に拡大縮小を行うボタンを出したい場合がある。
本に載ってる通りにgetZoomControls()メソッドを使うと非推奨とされるようだ。
APIリファレンスにも@Deprecatedってされてる。

非推奨コード

その場合はGoogleのMapViewのAPIリファレンスに載ってる
setBuiltInZoomControls(true)を使用するとよい。
一行で書ける。
apiドキュメント

 
    /**
     * 初期処理
     */
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //レイアウトを設定する
        setContentView(R.layout.main);

        // MapViewオブジェクトを取得
        MapView map_view = (MapView) findViewById(R.id.mapview);

//        ZoomControls zoom = (ZoomControls)map_view.getZoomControls();
//        ViewGroup.LayoutParams layout = new ViewGroup.LayoutParams(
//        		ViewGroup.LayoutParams.FILL_PARENT,
//        		ViewGroup.LayoutParams.FILL_PARENT);
//        zoom.setLayoutParams(layout);
//        zoom.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
//        map_view.addView(zoom);
    
    //上記処理が一行で書ける
        map_view.setBuiltInZoomControls(true);

	}

マップをクリックするとズームボタンが出る
推奨

android tips Toast

androidにはToastクラスと言うのがあって、javascriptの
alertみたいにチョットしたメッセージを表示したい時に
使用できる。

表示するメッセージは直接指定と、リソースから取ってくるやり方がある
Toast.makeText(Context context, CharSequence text, int duration)
Toast.makeText(Context context, int resId, int duration)

■リファレンス
http://developer.android.com/intl/ja/reference/android/widget/Toast.html

■以下サンプル

 
package net.oike.androidtips;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

/**
 * 適当なクラス
 * @author oike
  */
public class ToastSample extends Activity {

	/**
	 * 初期化
	 */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //ボタンを取得する
        Button b = (Button)findViewById(R.id.Button01);

        //ボタンクリック処理
        b.setOnClickListener(new View.OnClickListener() {

			public void onClick(View v) {

				setText();

				//トーストの表示(直接書く)
				Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_SHORT).show();

				//トーストの表示(リソースから文字を取得)
				Toast.makeText(getApplicationContext(), R.string.toastMoji, Toast.LENGTH_SHORT).show();

			}
		});

    }

    /**
     * ボタンクリック時の操作
     */
    private void setText() {
    	//EditText text = (EditText)findViewById(R.id.TextView01);
    	TextView textView = (TextView)findViewById(R.id.TextView01);
    	textView.setText("テキストの文字変更したよん");
    }

}

■トーストは以下の表示
toast1

toast2

余談:
SyntaxHighlighter Evolvedプラグインを今まで使ってなかったので
入れてみた。便利や~(‘-‘*)

Log4Net設定ファイルを作成して、動的にLog4Netを利用する方法

①Log4NetConf.xmlという名前で、Projectの直下にファイルを作成します。
※名前は何でもいいです

②Log4Netのログ出力先の設定や、出力レベルの設定を記述します。

③プロパティを設定します。

④Assembly.infoにという記述を追加します。
以下の設定を行うことで、Log4Netの設定ファイルを読み込めます。

<Assembly: log4net.Config.XMLConfiguratorAttribute(Configfile:=”Log4NetConf.xml”, Watch:=True)>

⑤ここでビルドを行うと、exeと同じフォルダに上記Log4NetConf.xmlが出力され、実行時に読み込まれます。

【vbのプロパティウインドウ】

【以下設定ファイル例】

DataGridView フォーカスが移った時にセルの値を取得する方法

DataGridView.CellValueChangedを使用する。

入力セルからフォーカスを移した場合に、
セルの入力値が決定されるので
決定されたタイミングで発生する、CellValueChangedイベントを使用すると、
値が取得できます。

Private Sub DataGridView1_CellContentClick( _
   ByVal sender As System.Object, _
   ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
   Handles DataGridView1.CellValueChanged

   If e.RowIndex < 0 OrElse e.ColumnIndex < 0 Then
     Exit Sub
   End If

   Dim dgv As DataGridView = DirectCast(sender, DataGridView)

   Console.WriteLine(dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString)

End Sub

DataGridView セルの値をチェックする方法その1

DataGridView.CellValidatingを使用する。

CellValidatingイベントを使用すると、

タブやマウスなどでフォーカスを移そうとする際に、
入力値をチェックして、正しくなければキャンセルできます。

Private Sub dataGridView1_CellValidating( _
  ByVal sender As Object, _
  ByVal e As DataGridViewCellValidatingEventArgs) _
    Handles DataGridView1.CellValidating
    

    With DirectCast(sender, DataGridView)
        ’入力されていない場合にキャンセルします
        If String.IsNullOrEmpty(e.FormattedValue.ToString) = True Then
            e.Cancel = True
        End If
    End With
End Sub
    (注)MSDNから引用です。
    ユーザーがユーザー インターフェイス (UI) を通じて入力したテキストが、FormattedValue プロパティの値になります。
    この値が、セルの Value プロパティの値に解析する前に検証する対象となります。