Ich habe ein Problem, wo es scheint, ich kann nicht Schlüsselereignisse überhaupt im Emulator schießen (es arbeitete vorher, aber irgendwie .. etwas kaputt).Android - onKey Ereignisse feuern nicht
Hier ist ein Beispielcode, der das zweite Textfeld mit dem Text des ersten füllen sollte, wenn eine Taste in der ersten gedrückt wird (oder wenn auf die Schaltfläche geklickt wird). Aber das tut es nicht.
Mache ich etwas falsch?
Aktivitätsklasse:
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());
}
});
}
}
Layout-Datei:.
<?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>
hast du das zufällig versucht? e2.setText (e1.getText(). toString()); Ich dachte, .getText() gibt nur die Textansicht zurück, ich könnte mich aber irren ... – ninjasense
Ich dachte, 'ToString()' wurde automatisch für jedes 'Objekt' aufgerufen, das als' String' betrachtet werden muss. – rds
Eigentlich toString() würde in diesem Fall niemals aufgerufen werden - getText() gibt ein Objekt zurück, das Editable implementiert (wodurch CharSequence erweitert wird). setText() akzeptiert einen CharSequence-Parameter. – Adam