OSDN Git Service

ワーニング等を除去。
[gokigen/TheWarikan.git] / app / src / main / java / jp / sourceforge / gokigen / warikan / InputTenKey.java
1 package jp.sourceforge.gokigen.warikan;
2
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;
11
12
13 /**
14  *  テンキー入力画面
15  *   startActivityForResult()で呼ばれることを前提とし、入力値をResultで返す。
16  *  エラーまたは入力キャンセルの場合には、Activity.RESULT_OK (-1) を応答する。
17  * <p>
18  *  ※ 処理はイベントリスナ側で行うので、このクラスでは大した処理は行わない。
19  *  
20  * @author MRSa
21  *
22  */
23 public class InputTenKey extends Activity
24 {
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;
28
29     public TenKeyListener listener = null;
30     
31     /** Called when the activity is first created. */
32     @Override
33     public void onCreate(Bundle savedInstanceState)
34     {
35         super.onCreate(savedInstanceState);
36         requestWindowFeature(Window.FEATURE_NO_TITLE);
37         setContentView(R.layout.tenkey);
38
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);
56         
57         
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);
73         
74         fieldArea.setOnKeyListener(listener);
75     }
76     
77     /**
78      *  画面が裏に回ったときの処理
79      */
80     @Override
81     public void onPause()
82     {
83         super.onPause();
84     }
85     
86     /**
87      *  画面が表に出てきたときの処理
88      *  (入力ガイドメッセージと初期値を設定する)
89      */
90     @Override
91     public void onResume()
92     {
93         super.onResume();
94
95         try
96         {
97             //  ガイドメッセージの表示
98             String message = "";
99             Intent intent = getIntent();
100             int dummy = NO_INFORMATION_MESSAGE;
101             int resId = intent.getIntExtra(INPUT_INFORMATION, dummy);
102             if (resId != NO_INFORMATION_MESSAGE)
103             {
104                 message = getString(resId);
105             }
106             TextView messageArea = findViewById(R.id.tenKeyMessage);
107             messageArea.setText(message.toCharArray(), 0, message.length());            
108         
109             // 初期値の表示
110             int initialValue = intent.getIntExtra(INITIAL_VALUE, dummy);
111             if (initialValue > 0)
112             {
113                 message = "" + initialValue;
114                 EditText valueArea = findViewById(R.id.numericData);
115                 valueArea.setText(message.toCharArray(), 0, message.length());
116                 valueArea.setSelection(message.length());
117             }
118         }
119         catch (Exception ex)
120         {
121             // なんもしない...
122         }
123     }
124     
125     /**
126      *   キー入力されたとき...
127      */
128     public boolean onKeyDown(int keyCode, KeyEvent event)
129     {
130         try
131         {
132                 // delegateして処理を継続する。
133                 return (listener.onKeyDown(keyCode, event));
134         }
135         catch (Exception ex)
136         {
137             // 
138         }
139         return (false);
140     }
141 }