2017-05-03 1 views
0

사용자가 누를 때마다 Enter 키를 얻으려고합니다.Android Edittext 키 누르기가 실행되지 않습니다.

나는 많은 코드를 시도했지만 에뮬레이터 나 장치에서 Enter 키를 얻을 수 없었다.

여기 내 코드입니다 :

public class MainActivity extends AppCompatActivity implements View.OnKeyListener { 
String barkodsifre; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    EditText sifre = (EditText) findViewById(R.id.barkodsifre); 
    sifre.setOnKeyListener(this); 
} 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
      (keyCode == KeyEvent.KEYCODE_ENTER)) { 
     Log.i("a","b"); 
     return true; 
    } 
    return false; 
} 

} 단 1 글고 및 XML에 텍스트 뷰가 있습니다

. 데이터는 바코드 스캐너로 편집 텍스트에 입력됩니다. 바코드 스캐너는 스캔 한 바코드 끝에 "Enter"문자를 보냅니다. 바코드 스캐너의 바코드 스캐너에서 '입력'을 보내지 만 입력 키는 처리되지 않습니다.

코드에 누락되었거나 코드가 잘못되었습니다. 바코드 스캐너에서 나오는 "입력"키는 어떻게 처리 할 수 ​​있습니까?

<RelativeLayout 
    android:layout_width="368dp" 
    android:layout_height="495dp" 
    tools:layout_editor_absoluteX="8dp" 
    tools:layout_editor_absoluteY="8dp"> 

    <TextView 
     android:id="@+id/lblbarkod" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:ems="10" 
     android:inputType="none" 
     android:text="Barkod Giriniz!" 
     android:textAlignment="center" 
     android:textSize="30sp" 
     android:textStyle="bold" /> 

    <EditText 
     android:id="@+id/barkodsifre" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignEnd="@+id/lblbarkod" 
     android:layout_alignLeft="@+id/lblbarkod" 
     android:layout_alignRight="@+id/lblbarkod" 
     android:layout_alignStart="@+id/lblbarkod" 
     android:layout_below="@+id/lblbarkod" 
     android:imeOptions="actionGo|flagNoFullscreen" 
     android:inputType="textPassword" 
     android:maxLines="1" 
     android:ems="10" /> 

</RelativeLayout> 

답변

0
@Override <----------------!!!!! 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
      (keyCode == KeyEvent.KEYCODE_ENTER)) { 
     Log.i("a","b"); 
     return true; 
    } 
    return false; 
} 
+0

미안 해요, 난 당신의 대답을 이해 didnt는

여기 내 XML이다. Onkey 메서드 위에 오버라이드 (override)를 써야한다는 것을 의미한다면, 나는 그것을했고 여전히 작동하지 않습니다. –

0

이 시도 :

public class MainActivity extends AppCompatActivity implements EditText.OnKeyListener { 
    String barkodsifre; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     EditText sifre = (EditText) findViewById(R.id.barkodsifre); 
     sifre.setOnKeyListener(this); 
    } 

    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
      (keyCode == KeyEvent.KEYCODE_ENTER)) { 
      Log.i("a","b"); 
      return true; 
     } 
     return false; 
    } 
} 
관련 문제