J'ai un problème où il semble que je ne peux pas déclencher d'événements clés dans l'émulateur (ça fonctionnait avant, mais, d'une manière ou d'une autre ... quelque chose s'est cassé).Android - les événements onKey ne se déclenchent pas
Voici un exemple de code qui doit remplir la deuxième zone de texte avec le texte du premier lorsque vous appuyez sur une touche dans la première (ou si vous cliquez sur le bouton). Mais ça ne fait pas ça.
Est-ce que je fais quelque chose de mal?
Classe d'activité:
package abc.def;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.Button;
import android.widget.EditText;
public class Fill extends Activity {
/** Called when the activity is first created. */
EditText e1;
EditText e2;
Button b;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
e1 = (EditText) findViewById(R.id.EditText01);
e2 = (EditText) findViewById(R.id.EditText02);
b = (Button) findViewById(R.id.Button01);
e1.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
e2.setText(e1.getText());
return false;
}
});
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
e2.setText(e1.getText());
}
});
}
}
fichier Mise en page:.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<EditText android:text="" android:id="@+id/EditText01" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
<EditText android:text="" android:id="@+id/EditText02" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
<Button android:text="Click" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
avez-vous essayé cela par hasard? e2.setText (e1.getText(). toString()); Je pensais que .getText() ne renvoyait que la textview, je pouvais me tromper ... – ninjasense
Je pensais que 'ToString()' était automatiquement appelé sur n'importe quel 'Object' qui devait être considéré comme' String' – rds
En fait, toString() ne sera jamais appelé dans ce cas - getText() renvoie un objet qui implémente Editable (qui étend CharSequence). setText() prend un paramètre CharSequence. – Adam