1 package jp.sourceforge.gokigen.warikan;
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.view.Window;
6 import android.view.KeyEvent;
7 import android.widget.Button;
8 import android.widget.TextView;
9 import android.widget.EditText;
10 import android.content.Intent;
15 * startActivityForResult()で呼ばれることを前提とし、入力値をResultで返す。
16 * エラーまたは入力キャンセルの場合には、Activity.RESULT_OK (-1) を応答する。
18 * ※ 処理はイベントリスナ側で行うので、このクラスでは大した処理は行わない。
23 public class InputTenKey extends Activity
25 static public final String INPUT_INFORMATION = "net.cornn.warikan.InputGuidance";
26 static public final String INITIAL_VALUE = "net.cornn.warikan.InputDefaultValue";
27 static public final int NO_INFORMATION_MESSAGE = -1;
29 public TenKeyListener listener = null;
31 /** Called when the activity is first created. */
33 public void onCreate(Bundle savedInstanceState)
35 super.onCreate(savedInstanceState);
36 requestWindowFeature(Window.FEATURE_NO_TITLE);
37 setContentView(R.layout.tenkey);
39 // イベントリスナとオブジェクト(ボタン)のリンク
40 listener = new TenKeyListener(this);
41 final Button cancelButton = findViewById(R.id.button_Cancel);
42 final Button okButton = findViewById(R.id.button_Enter);
43 final Button zeroButton = findViewById(R.id.button_Zero);
44 final Button oneButton = findViewById(R.id.button_One);
45 final Button twoButton = findViewById(R.id.button_Two);
46 final Button threeButton = findViewById(R.id.button_Three);
47 final Button fourButton = findViewById(R.id.button_Four);
48 final Button fiveButton = findViewById(R.id.button_Five);
49 final Button sixButton = findViewById(R.id.button_Six);
50 final Button sevenButton = findViewById(R.id.button_Seven);
51 final Button eightButton = findViewById(R.id.button_Eight);
52 final Button nineButton = findViewById(R.id.button_Nine);
53 final Button clearButton = findViewById(R.id.button_Clear);
54 final Button zero2Button = findViewById(R.id.button_ZeroZero);
55 final EditText fieldArea = findViewById(R.id.numericData);
58 // ボタンとそれぞれイベントリスナをつなぐ!
59 okButton.setOnClickListener(listener);
60 cancelButton.setOnClickListener(listener);
61 clearButton.setOnClickListener(listener);
62 zeroButton.setOnClickListener(listener);
63 oneButton.setOnClickListener(listener);
64 twoButton.setOnClickListener(listener);
65 threeButton.setOnClickListener(listener);
66 fourButton.setOnClickListener(listener);
67 fiveButton.setOnClickListener(listener);
68 sixButton.setOnClickListener(listener);
69 sevenButton.setOnClickListener(listener);
70 eightButton.setOnClickListener(listener);
71 nineButton.setOnClickListener(listener);
72 zero2Button.setOnClickListener(listener);
74 fieldArea.setOnKeyListener(listener);
88 * (入力ガイドメッセージと初期値を設定する)
91 public void onResume()
99 Intent intent = getIntent();
100 int dummy = NO_INFORMATION_MESSAGE;
101 int resId = intent.getIntExtra(INPUT_INFORMATION, dummy);
102 if (resId != NO_INFORMATION_MESSAGE)
104 message = getString(resId);
106 TextView messageArea = findViewById(R.id.tenKeyMessage);
107 messageArea.setText(message.toCharArray(), 0, message.length());
110 int initialValue = intent.getIntExtra(INITIAL_VALUE, dummy);
111 if (initialValue > 0)
113 message = "" + initialValue;
114 EditText valueArea = findViewById(R.id.numericData);
115 valueArea.setText(message.toCharArray(), 0, message.length());
116 valueArea.setSelection(message.length());
128 public boolean onKeyDown(int keyCode, KeyEvent event)
132 // delegateして処理を継続する。
133 return (listener.onKeyDown(keyCode, event));