why in Huawei-phones Spinner.OnItemSelectedListener is not triggerd after setSelection() called?

Viewed 11

I have a Spinner for currencies to choose from, so after selecting the Currency it should trigger the OnItemSelectedListener to do some code.

Spinner sp_Curr;

@Override
protected void onCreate(Bundle savedInstanceState) {
   ...
   log.d(TAG, "onCreate Called");

   sp_Curr = findViewById(R.id.sp_Curr);
   sp_Curr.setAdapter(curr_Adapter);
   sp_Curr.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
       @Override
       public void onItemSelected(...) {
           // Just a code to do something
           log.d(TAG, "onItemSelected triggered");
       }
   }

   button.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View view) {
           log.d(TAG, "button Clicked");
           setCurrencyDefaultValue();
       }
   });
 
   setCurrencyDefaultValue();
   ...
}

private void setCurrencyDefaultValue() {
   ...
   sp_Curr.setSelection(selectedIndex);
   log.d(TAG, "Curr setSelection Called");
   ...
}

In all kinds of android phones (Samsung, Oppo...) everything it just works fine ✔
But with Huawei phones it selects the item, but OnItemSelectedListener is sometimes triggered, and sometimes it doesn't. especially if setSelection() called from onCreate(), I don't know what happens.

onCreate example

All kinds of android phones log

D/Sale Activity: onCreate Called
D/Sale Activity: Curr setSelection Called
D/Sale Activity: onItemSelected triggered

D/Sale Activity: button Clicked
D/Sale Activity: Curr setSelection Called
D/Sale Activity: onItemSelected triggered

With Huawei phones log

D/Sale Activity: onCreate Called
D/Sale Activity: Curr setSelection Called

D/Sale Activity: button Clicked
D/Sale Activity: Curr setSelection Called
D/Sale Activity: onItemSelected triggered

BIG NOTE

It is unstable during testing, and there is no Google API Service I can blame in the middle of the process, not as far as I know.

0 Answers
Related