如何设置 Android Retrofit2 BASE URL 从 activity 中获取 EditText 的值?
How can I set Android Retrofit2 BASE URL taking values of EditText from an activity?
我有一个 activity 从那里我通过两个不同的 EditText
获得基础 url ip 像 10.0.2.2 和端口 8080。
现在我'我从 http://10.0.2.2:8080
.
等获得的值制作 url 字符串现在我需要将此 url 设置为 ApiClient()
BASE_URL。这 url 将是永久性的。它应该在整个应用程序的任何 activity 或任何片段中可用。
注意:我只需要设置一次应用程序生命周期的值。
如果您建议 Singleton Class
或 SharedPreference
请解释资源。 (我试过他们但效果不佳)
你可以做一个class,定义静态变量越来越好。
当您从编辑文本中获取值时初始化这些变量,然后您可以简单地从该静态中获取值
在您的 activity class 中,您可以这样访问
baseurl.Setip(您的编辑文本值)
为了得到那个 ip 你可以写
Retrofit.Builder.baseurl(baseurl.getIp)
像这样的东西
Hope this image will explain you
对于上述问题,最好的解决方案是将信息存储在SQLite
或Room
数据库中,或者手动将信息存储在Phone存储中的文件中。
使用SharedPreferences
也可以做到。在这种情况下 ApiClient
应该有一个参数。
我有一个 activity 从那里我通过两个不同的 EditText
获得基础 url ip 像 10.0.2.2 和端口 8080。
现在我'我从 http://10.0.2.2:8080
.
等获得的值制作 url 字符串现在我需要将此 url 设置为 ApiClient()
BASE_URL。这 url 将是永久性的。它应该在整个应用程序的任何 activity 或任何片段中可用。
注意:我只需要设置一次应用程序生命周期的值。
如果您建议 Singleton Class
或 SharedPreference
请解释资源。 (我试过他们但效果不佳)
你可以做一个class,定义静态变量越来越好。 当您从编辑文本中获取值时初始化这些变量,然后您可以简单地从该静态中获取值 在您的 activity class 中,您可以这样访问 baseurl.Setip(您的编辑文本值) 为了得到那个 ip 你可以写 Retrofit.Builder.baseurl(baseurl.getIp) 像这样的东西 Hope this image will explain you
对于上述问题,最好的解决方案是将信息存储在SQLite
或Room
数据库中,或者手动将信息存储在Phone存储中的文件中。
使用SharedPreferences
也可以做到。在这种情况下 ApiClient
应该有一个参数。