私が作成しているこのネイティブ点字アプリには、6つの異なるボタンがあり、私はすべてのユニークな組み合わせが私に別の文字を持って来たいと思っています。Android:タイマーの入力を処理してTextviewに設定する
たとえば、ボタン1を押すと簡単に文字「A」が表示されます。その後、ボタン1とボタン2を押すと、文字「C」が表示されます。私はこれらの6つのボタンのすべての異なるボタンの組み合わせが私に別個の手紙をもたらすことを望む。
はprocessInput()
に私はmap
を開始したが、私はボタンをクリックしようとしたとき
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.keyboard);
Window window = this.getWindow();
window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
// Init GUI
txtMessage = (EditText) findViewById(R.id.txtMesssage);
Button buttonOne = (Button) findViewById(R.id.block1);
Button buttonTwo = (Button) findViewById(R.id.block2);
Button buttonThree = (Button) findViewById(R.id.block3);
Button buttonFour = (Button) findViewById(R.id.block4);
Button buttonFive = (Button) findViewById(R.id.block5);
Button buttonSix = (Button) findViewById(R.id.block6);
// Attached Click Listener
btnSend.setOnClickListener(this);
buttonOne.setOnClickListener(this);
buttonTwo.setOnClickListener(this);
buttonThree.setOnClickListener(this);
buttonFour.setOnClickListener(this);
buttonFive.setOnClickListener(this);
buttonSix.setOnClickListener(this);
}
@Override
public void onClick(View v) {
final Map<String, String> map = new HashMap<String, String>();
Timer processTimer = new Timer();
processTimer.schedule(new TimerTask() {
public void run() {
processInput();
}
private void processInput() {
// TODO Auto-generated method stub
map.put(getString(R.id.block1), "A");
map.put(getString(R.id.block1) + getString(R.id.block2), "C");
map.get(R.id.block1);
map.get(R.id.block1+R.id.block2);
}
}, 500); // Delay before processing.
processTimer.cancel();
processTimer.schedule(new TimerTask() {
public void run() {
processInput();
}
private void processInput() {
// TODO Auto-generated method stub
}
}, 500);
}
XMLレイアウト "アプリが自動的に停止":
私がように見えることはできませんがそれを取得すると、私はTimer
でエラーが発生しています。
Logcatエラー:
01-12 21:43:09.764: E/AndroidRuntime(20677): FATAL EXCEPTION: main
01-12 21:43:09.764: E/AndroidRuntime(20677): Process: info.androidhive.speechtotext, PID: 20677
01-12 21:43:09.764: E/AndroidRuntime(20677): java.lang.IllegalStateException: Timer was canceled
01-12 21:43:09.764: E/AndroidRuntime(20677): at java.util.Timer.scheduleImpl(Timer.java:558)
01-12 21:43:09.764: E/AndroidRuntime(20677): at java.util.Timer.schedule(Timer.java:456)
01-12 21:43:09.764: E/AndroidRuntime(20677): at info.androidhive.speechtotext.Braillekeyboard.onClick(Braillekeyboard.java:307)
01-12 21:43:09.764: E/AndroidRuntime(20677): at android.view.View.performClick(View.java:5225)
01-12 21:43:09.764: E/AndroidRuntime(20677): at android.view.View$PerformClick.run(View.java:21195)
01-12 21:43:09.764: E/AndroidRuntime(20677): at android.os.Handler.handleCallback(Handler.java:739)
01-12 21:43:09.764: E/AndroidRuntime(20677): at android.os.Handler.dispatchMessage(Handler.java:95)
01-12 21:43:09.764: E/AndroidRuntime(20677): at android.os.Looper.loop(Looper.java:148)
01-12 21:43:09.764: E/AndroidRuntime(20677): at android.app.ActivityThread.main(ActivityThread.java:5451)
01-12 21:43:09.764: E/AndroidRuntime(20677): at java.lang.reflect.Method.invoke(Native Method)
01-12 21:43:09.764: E/AndroidRuntime(20677): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
01-12 21:43:09.764: E/AndroidRuntime(20677): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
元のコード:
Timer processTimer = new Timer().schedule(new TimerTask() {
public void run() { processInput(); }
}, 500); // Delay before processing.
processTimer.cancel();
processtimer.schedule(new TimerTask() {
public void run() { processInput(); }
}, 500);
'logcat'の例外スタックトレースを投稿してください。 –
@ KarsenGaussありがとうございました。 – pjforum