Android - onTextChanged() called on when phone orientation is changed

后端 未结 2 1330
梦谈多话
梦谈多话 2021-02-06 02:32

I tried to implement search using EditText. whenever a text is typed in the EditText request is sent with the typed text in onTextChanged()

相关标签:
2条回答
  • 2021-02-06 02:43

    You need to override onConfigurationChanged method to get callback whenever orientation is getting changed.

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            // landscape
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            // portrait
        }
    }
    

    Add below line in manifest

    android:configChanges= "orientation"
    

    Now based on the callback you can do whatever you wanted to do.

    0 讨论(0)
  • 2021-02-06 02:48

    I've got this problem just. So I moved addTextChangedListener to the post method of EditText in the onCreateView:

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    
        ...
    
        EditText mSearchQuery = findViewById(R.id.search_query);
        mSearchQuery.post(new Runnable() {
                @Override
                public void run() {
                    mSearchQuery.addTextChangedListener(new TextWatcher() {
                        @Override
                        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                        }
    
                        @Override
                        public void onTextChanged(CharSequence s, int start, int before, int count) {
                            //Some stuff
                        }
    
                        @Override
                        public void afterTextChanged(Editable s) {
                        }
                    });
                }
            });
    }
    
    0 讨论(0)
提交回复
热议问题