0

うーん.. 少しばかげた質問かもしれませんが、自分ではわかりません...

    package com.example.wettkampftimerbt;
    import android.content.Intent;
    import android.inputmethodservice.Keyboard.Key;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.KeyEvent;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;

    public class ServMPW extends Activity_ActivityGroup implements OnClickListener{

        Button enter, cancel;
        EditText eingabe, eingabe2, masterpw;
        String pwx, eingabex, pass, adminacchint1x, adminacchint2x;
    private final String PREFS_NAME = "prefs";  
    private final String PREFS_PW = "pw";
    private final String PREFS_lang = "lang";
    private final String TITLE5 = "title5";
    private final String ADMINACCHINT1 = "adminacchint1";
    private final String ADMINACCHINT2 = "adminacchint2";
        @Override
        public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
     setContentView(R.layout.servmpw);   
     //((TextView)((FrameLayout)((LinearLayout)((ViewGroup) getWindow().getDecorView()).getChildAt(0)).getChildAt(0)).getChildAt(0)).setGravity(Gravity.CENTER);
     String title5x=(getSharedPreferences(PREFS_lang, MODE_PRIVATE).getString(TITLE5, "Administrationszugang"));
    this.setTitle(title5x);
     adminacchint1x=(getSharedPreferences(PREFS_lang, MODE_PRIVATE).getString(ADMINACCHINT1, "Passwort"));
     adminacchint2x=(getSharedPreferences(PREFS_lang, MODE_PRIVATE).getString(ADMINACCHINT2, "falsches Passwort"));

            enter=(Button)findViewById(R.id.enter);
            cancel=(Button)findViewById(R.id.cancel);
            eingabe=(EditText)findViewById(R.id.eingabe);
            masterpw=(EditText)findViewById(R.id.masterpw);
            eingabe.setHint(adminacchint1x);
            eingabe2=(EditText)findViewById(R.id.eingabe2);
            enter.setOnClickListener(this);
            cancel.setOnClickListener(this);

    }
            public void onClick (View v){

             if (v==cancel){
                    finish();}
            else if (v == enter){
                entermeth();
            }   

                    else {
                eingabe.setText("");
                eingabe.setHint(adminacchint2x);}}



public void OnKey (View v, int keyCode, KeyEvent event) 
{
    if (keyCode==66)
        entermeth();
}
public void entermeth(){

    eingabe2.setText(getSharedPreferences(PREFS_NAME, MODE_PRIVATE).getString(PREFS_PW, "bbb"));  
    pwx = eingabe2.getText().toString();
    Log.e("pw", PREFS_PW + "." + pwx);
    eingabex = eingabe.getText().toString(); 
    masterpw.setText("aaa");
    String masterpwx = masterpw.getText().toString();
    Log.e("pw:", masterpwx);
    if (eingabex.equals(pwx)||(eingabex.equals(masterpwx))){
        Intent admin = new Intent (ServMPW.this, Admin.class);
        ServMPW.this.finish();
        startActivity(admin);}


}
}

ソフトキーボードのエンターボタンが押された場合、自分のエンターボタンをクリックしたいと思います。しかし、それは機能しません...何が欠けていましたか?

4

2 に答える 2

2

あなたEditTextはバインドできますOnEditorActionListener。このようなもの

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
   @Override
   public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
       if (actionId == EditorInfo.IME_ACTION_DONE) {
           //do here your stuff here
           return true;
       }
       return false;
   }
});
于 2013-02-07T12:24:00.293 に答える
1

メソッドを呼び出すものはありませんOnKey。それはあなたが逃したものです。また、クリックを強制することは良いプログラミング手法ではありません。代わりにメソッドprivate doEnterActions(){ }を作成し、EnterキーとEnterボタンの両方でそのメソッドを呼び出す必要があります。

編集:

ClickListenerをボタン(アクティビティによって実装される)に設定するのと同じように、アクティビティを実装し、主要なイベントのリスナーとして設定する必要があります。それはを使用して行われますenter.setOnKeyListener()

于 2013-02-07T12:17:07.103 に答える