1

私はこのコードを持っています、私はボタンを持っています、そしてこれは編集テキストを表示し、ソフト入力を強制的に表示します。

public class MainActivity extends Activity implements OnClickListener {
    private EditText textInput;
    private Button btnAdd;
    private TextView text;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textInput = (EditText)this.findViewById(R.id.editText1);
        btnAdd = (Button)this.findViewById(R.id.button1);
        text = (TextView)this.findViewById(R.id.textView1);
        btnAdd.setOnClickListener(this);


    }


    public void onClick(View arg0) {
        int id = arg0.getId();
        switch(id){
        case R.id.button1:
            processOnClick();
            break;
        }


    } 

 private void processOnClick() {
        text.setVisibility(2);
        textInput.setVisibility(0);
        textInput.setInputType(0x00000001);
        textInput.getWindowVisibility();
        textInput.setCursorVisible(false);
        //textInput.onKeyDown(0x00000009,KeyEvent.KEYCODE_2);
        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(textInput.findFocus(), 0);



    }

全てに感謝

4

2 に答える 2

0

このリンクを使用できます: Android でキーボード (ディス) が表示されるかどうかを知るには?

 @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        // Checks whether a hardware or on-screen keyboard is available
        if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO) {
            Toast.makeText(this, "Keyboard visible", Toast.LENGTH_SHORT).show();
        } else if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_YES) {
            Toast.makeText(this, "Keyboard hidden", Toast.LENGTH_SHORT).show();
        }
    }
于 2012-10-16T11:58:21.707 に答える
0

それはすべて、「ユーザーがテキストの入力を終了する」ことをどのように判断するかにかかっています。

ユーザーが入力を行ってから 3 秒後にプログラムが応答するのを待っていると判断できる場合 (たとえば)、次のようにします。

  1. TextWatcherに aを追加 しEditTextます。テキストが変更されるたびに、コールバックを通じて通知されます。
  2. 各入力後Thread、あらかじめ決められた時間 (3 秒) スリープする を起動します。スリープが完了したら、 を起動しActivityます。スリープが完了する前にユーザーがテキストを入力した場合、スレッドを中断して最初からやり直します。

より簡単な実装は、「Go」や「Start」などのボタンを提供して、ユーザーが不意を突かれず、意図しないことをしないようにすることです。

于 2012-10-16T12:04:26.247 に答える