(FRONT) FRONT (2025)

Return Custom Dropdownlist with default value based on Spinner

   1:  package com.voipplus.mmsclient.activities;
   2:  
   3:  import android.os.Bundle;
   4:  import android.util.Log;
   5:  import android.widget.ArrayAdapter;
   6:  
   7:  import androidx.activity.EdgeToEdge;
   8:  import androidx.appcompat.app.AppCompatActivity;
   9:  import androidx.core.graphics.Insets;
  10:  import androidx.core.view.ViewCompat;
  11:  import androidx.core.view.WindowInsetsCompat;
  12:  
  13:  import com.google.android.material.tabs.TabLayout;
  14:  import com.voipplus.mmsclient.R;
  15:  import com.voipplus.mmsclient.customControls.SpinnerOpen;
  16:  import com.voipplus.mmsclient.httpService.HTTPService;
  17:  import com.voipplus.mmsclient.serviceLocalStorage.CryptoStorageService;
  18:  import com.voipplus.mmsclient.serviceLocalStorage.KeyValueService;
  19:  import com.voipplus.mmsclient.serviceManager.MyApplication;
  20:  import com.voipplus.mmsclient.serviceManager.ServiceLocatorReference;
  21:  import com.voipplus.mmsclient.tabs.TabSwitcher;
  22:  
  23:  public class SettingActivity extends AppCompatActivity {
  24:  
  25:      private static final String TAG = "SettingActivity";
  26:      private TabLayout tabLayout;
  27:      private TabSwitcher tabSwitcher;
  28:  
  29:      @Override
  30:      protected void onCreate(Bundle savedInstanceState) {
  31:          super.onCreate(savedInstanceState);
  32:          EdgeToEdge.enable(this);
  33:          setContentView(R.layout.activity_setting);
  34:  
  35:          Log.d(TAG, "onCreate: SettingActivity started"); // Log when onCreate is called
  36:          setTitle("VoipPLUS Setting");
  37:  
  38:          // Get the Application instance
  39:          MyApplication myApp = (MyApplication) getApplication();
  40:          // Get the ServiceLocator
  41:          ServiceLocatorReference serviceLocator = myApp.serviceLocator;
  42:  
  43:          // Get the services
  44:          KeyValueService keyValueService = serviceLocator.getService(KeyValueService.class);
  45:          CryptoStorageService cryptoStorageService = serviceLocator.getService(CryptoStorageService.class);
  46:          HTTPService httpService = serviceLocator.getService(HTTPService.class);
  47:  
  48:          setupSpinner(R.id.resolutionSpinner, R.array.resolution_options);
  49:          setupSpinner(R.id.framerateSpinner, R.array.framerate_options);
  50:          setupSpinner(R.id.encryptionSrtpSpinner, R.array.encryption_srtp_options);
  51:          setupSpinner(R.id.bitstreamSpinner, R.array.bitstream_options);
  52:          setupSpinner(R.id.dtmfTypeSpinner, R.array.dtmf_type_options);
  53:          setupSpinner(R.id.callerNameSpinner, R.array.caller_name_options);
  54:  
  55:          tabLayout = findViewById(R.id.tabLayout); // Now this will work
  56:          tabSwitcher = new TabSwitcher(this, tabLayout);
  57:          tabSwitcher.selectTab(3);
  58:  
  59:  
  60:          ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
  61:              Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
  62:              v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
  63:              return insets;
  64:          });
  65:      }
  66:  
  67:      private void setupSpinner(int spinnerId, int optionsArrayId) {
  68:          SpinnerOpen spinner = findViewById(spinnerId);
  69:          String[] options = getResources().getStringArray(optionsArrayId);
  70:          ArrayAdapter<CharSequence> adapter = SpinnerOpen.createGenericSpinnerAdapter(this, options);
  71:          adapter.setDropDownViewResource(R.layout.item_spinner);
  72:          spinner.setAdapter(adapter);
  73:      }
  74:  }
  75:  

Return




AndroidMosaic context:



Comments ( )
Link to this page: http://www.vb-net.com/AndroidMosaic/Setting.htm
< THANKS ME>