Ciao a tutti questo esempio è preso dalla guida di ioprogrammo che sto studiando e provando.....sono alla parte dove si paciocca coi listener. Sto provando il tocco e quello x digitare i tasti. Ho fatto come dice nel libro copiando il codice anche x esser sicuro. C'è un .java e un main.xml x il layout.
In pratica c'è una edit a sfondo rosso dove se clicco o digito qualcosa vengon intercettati gli eventi e sotto in una casella di testo mi scrive cosa ho fatto(e anche nei log)......il tocco funziona ma coi tasti no......ho provato sia a pigiare dalla tastiera virtuale sia da quella del mio laptop, ma mi prende solo i tasti strani tipo delete, invio o cose così, quelli normali, tipo lettere e numeri nn li sente in pratica se vedete la foto l'ultimo tasto premuto è Z e invece di scrivermela me la mette sotto nell'angolo, poi quando premo invio me lo butta nella cosa rossa ma nn rileva l'evento..........rileva solo se premo subito ad esempio backspace o qualche tasto strano.........metto codice e scrrenshot pls illuminatemi che sto sclerando
E poi cosìè quella barra cn caratteri cinesi che mi apre???
Ciao e grazie
1
2package it.ioprogrammo.eventdemo;
3
4import android.app.Activity;
5import android.os.Bundle;
6import android.util.Log;
7import android.view.KeyEvent;
8import android.view.MotionEvent;
9import android.view.View;
10import android.view.View.OnTouchListener;
11import android.view.View.OnKeyListener;
12import android.widget.TextView;
13
14public class EventDemoActivity extends Activity {
15
16
17public void onCreate(Bundle savedInstanceState) {
18super.onCreate(savedInstanceState);
19setContentView(R.layout.main);
20View eventArea = (View) findViewById(R.id.eventArea);
21// Tocco
22eventArea.setOnTouchListener(new OnTouchListener() {
23public boolean onTouch(View view, MotionEvent event) {
24String action;
25switch (event.getAction()) {
26case MotionEvent.ACTION_DOWN:
27action = "DOWN";
28break;
29case MotionEvent.ACTION_MOVE:
30action = "MOVE";
31break;
32case MotionEvent.ACTION_UP:
33action = "UP";
34break;
35default:
36action = "OTHER";
37break;
38}
39float x = event.getX();
40float y = event.getY();
41log("tocco: " + action + " su (" + x + "," + y + ")");
42return true;
43}
44});
45eventArea.setOnKeyListener(new OnKeyListener() {
46public boolean onKey(View view, int keyCode, KeyEvent event) {
47char c = event.getDisplayLabel();
48String action;
49switch (event.getAction()) {
50case KeyEvent.ACTION_DOWN:
51action = "DOWN";
52break;
53case KeyEvent.ACTION_UP:
54action = "UP";
55break;
56default:
57action = "OTHER";
58break;
59}
60log("Tasto: codice " + keyCode + " (" + c + "), azione " + action);
61return true;
62}
63});
64}
65
66private void log(String text) {
67// Logga
68Log.i("EVENT", text);
69// Mostra su schermo.
70TextView logArea = (TextView) findViewById(R.id.logArea);
71logArea.setText(text);
72}
73
74}
75
221
2
3<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
4android:orientation="vertical"
5android:layout_width="fill_parent"
6android:layout_height="fill_parent"
7android:gravity="center">
8<EditText android:id="@+id/eventArea"
9android:layout_width="wrap_content"
10android:layout_height="wrap_content"
11android:background="#990000"
12android:textColor="#FFFFFF"
13android:width="200px"
14android:height="200px" />
15<TextView android:id="@+id/logArea"
16android:layout_width="wrap_content"
17android:layout_height="wrap_content"
18android:text="Compi un evento sull'area rossa qui sopra" />
19</LinearLayout>
20
21
22