androidでGoogleマップを表示時に拡大縮小を行うボタンを出したい場合がある。
本に載ってる通りにgetZoomControls()メソッドを使うと非推奨とされるようだ。
APIリファレンスにも@Deprecatedってされてる。
その場合はGoogleのMapViewのAPIリファレンスに載ってる
setBuiltInZoomControls(true)を使用するとよい。
一行で書ける。
/**
* 初期処理
*/
@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には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("テキストの文字変更したよん");
}
}
■トーストは以下の表示
余談:
SyntaxHighlighter Evolvedプラグインを今まで使ってなかったので
入れてみた。便利や~(‘-‘*)
①Log4NetConf.xmlという名前で、Projectの直下にファイルを作成します。
※名前は何でもいいです
②Log4Netのログ出力先の設定や、出力レベルの設定を記述します。
③プロパティを設定します。
④Assembly.infoにという記述を追加します。
以下の設定を行うことで、Log4Netの設定ファイルを読み込めます。
<Assembly: log4net.Config.XMLConfiguratorAttribute(Configfile:=”Log4NetConf.xml”, Watch:=True)>
⑤ここでビルドを行うと、exeと同じフォルダに上記Log4NetConf.xmlが出力され、実行時に読み込まれます。
【vbのプロパティウインドウ】
【以下設定ファイル例】
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.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 プロパティの値に解析する前に検証する対象となります。
If I wasn't hard, I wouldn't be alive. If I couldn't ever be gentle, I wouldn't deserve to be alive.