Activity
の物理キーボードで数値または文字が押されたときに通知を受け取りたいと考えています。私は、単一のビューを持つアクティビティを持つAndroid Studioで簡単なアプリケーションを作成しました。入力、削除などはすべて受信されますが、実際の文字や数字は受信されません。私はTextView
またはEditText
ビューを使用したくありません。私はちょうど簡単なビューを使用してキーストロークを見ることができるようにしたい。どんな助けもありがとうございます。Androidの英数字キーがアクティビティまたはビューで受信されない
public class MainActivity extends AppCompatActivity {
public static final String TAG = "My Activity";
TextView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view = (View)findViewById(R.id.view);
view.setOnKeyListener(new EditText.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.d(TAG, "onKey " + keyCode);
return false;
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d(TAG, "KEY PRESSED " + keyCode);
return super.onKeyDown(keyCode, event);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
Log.d(TAG, "DISPATCH KEY" + event.getKeyCode());
return super.dispatchKeyEvent(event);
}
}
とレイアウトは次のとおりです:ここで
は、コードで次のように
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.plexistream.myapplication.MainActivity">
<View
android:id="@+id/view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</android.support.constraint.ConstraintLayout>
「this」はビューを指すものとします。私はあなたのコードを試しましたが、違いはありません。私はonKeyDown()とdispatchKeyEvent()を呼び出すのは、英数字のキーを押さなくても呼び出されます。だから、私は焦点が問題だとは思わない。 – user8749866