Как мне обновить BASE_URL, определенный в моем gradle, через пользовательский интерфейс? - PullRequest
0 голосов
/ 17 апреля 2019

В настоящее время я работаю над созданием диалогового окна alerttdialog с текстом редактирования, которое открывается при нажатии на экране входа в систему, что должно позволить возможность обновлять BASE_URL, определенный в моем Gradle.Скажем, например, что в настоящее время я определяю свой base_url следующим образом:

 buildConfigField("String", "BASE_URL", "\"https://myapp.com/api\"")

, который при запуске приложения преобразуется в URL-адрес buildConfig, так что в Buildconfig.java он отображается как:

  public static final String BASE_URL = "https://myapp.com/api";

Теперь мой вопрос: как мне обновить этот базовый URL в текстовом поле редактирования, которое я добавляю в alerttdialog на экране входа в систему, чтобы при изменении текста редактирования текста на:

https://myapp.com/api2

при нажатии кнопки Сохранитьон должен сохранить новую запись и применить ее к файлу buildconfig на протяжении всего приложения.Я также хочу отобразить кнопку сброса, чтобы позволить возможность сброса этого URL обратно к оригиналу.Любые идеи, как это сделать?

я использую код для alerttdialog, подобный следующему: https://medium.com/@mujtahidah/custom-dialog-with-edittext-and-button-action-android-fc64ef5eb2b2

Просто хочу узнать, есть ли способ динамического обновления BASE_URL в пользовательском интерфейсеи сохранить на лету?Есть идеи или примеры?Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

На ваш вопрос есть ответ.

  • Просто хотите узнать, есть ли способ динамического обновления BASE_URL в пользовательском интерфейсе и сохранения на лету?
  • ответ: Нет

Создан BuildConfig.java файл содержит все поля static and final.

public static final String BASE_URL = "https://myapp.com/api";

В Java вы не можете изменитьполя final.

Предложение. При нажатии кнопки «Сохранить» в диалоговом окне предупреждения сохраните обновленный URL-адрес в переменной экземпляра (который будет закрыт при закрытии приложения) или сохраните его в SharedPreferences (который будет доступен даже после повторного открытия приложения).).Так что вы можете использовать переменную, где вы хотите в дальнейшем.

0 голосов
/ 17 апреля 2019

Итак, в основном BuildConfig - это сгенерированный файл, который происходит во время компиляции. Поэтому, если вы хотите использовать значение, которое вы устанавливаете во время выполнения, вам, вероятно, следует использовать что-то в памяти или использовать общие настройки. Вы не можете редактировать сгенерированный во время компиляции файл во время выполнения.

SharedPreferences prefs = this.getSharedPreferences(
      "com.example.app", Context.MODE_PRIVATE);


prefs.edit().putString("base_url", "your new base url").apply();


String baseUrl = prefs.getString("base_url", BuildConfig.BASE_URL); 
// BuildConfig.BASE_URL being your default value
...