Android - события onKey не запускаются - PullRequest
0 голосов
/ 14 декабря 2010

У меня проблема, когда кажется, что я не могу заставить ключевые события вообще срабатывать в эмуляторе (он работал раньше, но, как-то .. что-то сломалось).

Вот некоторыеПример кода, который должен заполнить второе текстовое поле текстом первого, когда клавиша нажата в первом (или если кнопка нажата).Но это не так.

Я что-то не так делаю?

Класс активности:

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());
   }
        });
    }
}

Файл макета:

<?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>

Ответы [ 2 ]

0 голосов
/ 11 января 2011

Я получил это для работы, реализовав TextWatcher и используя вместо него addTextChangedListener (). Понятия не имею, почему это работает, когда onKeyListener нет - я подозреваю, что события клавиатуры даже не доходят до моего виджета по какой-то причине ..

0 голосов
/ 15 декабря 2010

Вы должны использовать e1.getText (). ToString (), чтобы получить результат.

LogCat будет полезен для определения значений, которые передаются.Вы можете добавить следующий LogCat для обнаружения похожих проблем

Log.d ("SOMENAME", e1.getText (). ToString);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...