Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当softinput消失时启动活动_Android_Android Activity_Keyboard - Fatal编程技术网

Android 当softinput消失时启动活动

Android 当softinput消失时启动活动,android,android-activity,keyboard,Android,Android Activity,Keyboard,我有这个代码,我有一个按钮,这个按钮显示一个编辑文本并强制软输入到apears,当用户结束输入文本时,我想做一些事情,我怎么做 public class MainActivity extends Activity implements OnClickListener { private EditText textInput; private Button btnAdd; private TextView text; /** Called when the act

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

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);



    }
感谢您的支持,您可以使用以下链接:


这完全取决于您如何确定“用户结束输入文本”

如果您可以认为用户正在等待程序在给出输入(例如)3秒钟后做出响应,您可以按照以下步骤进行操作:

  • 在编辑文本中添加一个。每次文本更改时,都会通过回调通知您
  • 每次输入后,启动一个
    线程
    ,如果睡眠完成,该线程将在预定时间(3秒)内睡眠,然后启动
    活动
    。如果用户在睡眠完成之前输入文本,则中断线程并重新开始

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

    最后我会把按钮放在按钮上,但我想避免它,使用此链接:您是否阅读了此评论:您可能希望将newConfig.hardceyboardhidden更改为newConfig.keyboardHidden,该选项还可以处理屏幕键盘RivieraKid 2011年5月11日10:03没关系-为你做的;-)-RivieraKid 5月11日10:21我尝试了它,但从未调用配置更改的方法。。。在AndroidManifest.xml中,我有android:configChanges=“keyboardHidden | keyboard”–PitjDroid 2011年5月11日10:26,configChanges属性是否与清单上的正确活动关联?–佐塔5月11日11:00
     @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();
            }
        }