1

我有这个代码,我有一个按钮,这个make出现一个编辑文本并强制软输入出现,当用户结束输入文本时我想做一些事情我怎么做?

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

你可以使用这个链接:How to know if keyboard (dis)appears in 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_ EditText每次文本更改时,都会通过回调通知您。
  2. 每次输入后,启动一个Thread休眠预定时间(3 秒)的程序。如果休眠完成,则启动Activity. 如果用户在睡眠完成之前输入文本,则中断线程并重新开始。

一个更直接的实现是提供一个按钮,上面写着“Go”或“Start”这样的东西,这样用户就不会感到意外,你也不会做任何无意的事情。

于 2012-10-16T12:04:26.247 回答