【问题标题】:Get data from database and use in interface in android从数据库中获取数据并在android的界面中使用
【发布时间】:2016-04-07 19:37:33
【问题描述】:

我正在使用 Urls 类(代码如下)来设置我想在我的应用中使用的不同网址

    public interface Urls {
        public String SERVER_BASE_URL = "http://webaddress.com/";
    public String URL_DIRECT =SERVER_BASE_URL + "token.php";
        public String URL_DIRECT2= SERVER_BASE_URL + "token2.php";
        public String URL_DIRECT3= SERVER_BASE_URL + "token3.php";
    }

现在我想将SERVER_BASE_URL 的值从静态值更改为我的数据库中的值。 IP 地址已正确存储在数据库中。为此,我使用基本代码,因为我需要此页面只出现一次来存储 IP 地址。

mydatabase = openOrCreateDatabase("IP", MODE_PRIVATE, null);
mydatabase.execSQL("CREATE TABLE IF NOT EXISTS value1(ipaddress VARCHAR);");
String a = ip.getText().toString();
mydatabase.execSQL("INSERT INTO value1 VALUES('" + a + "');");

我正在使用此代码从数据库中获取正确的 IP

Cursor resultSet = mydatabase.rawQuery("Select * from value1", null);
                resultSet.moveToFirst();
                address = resultSet.getString(0);

但我不知道如何以编程方式将此 IP 设置为 SERVER_BASE_URL。 或者我想从每个活动的数据库中获取价值??? 请帮忙!!!!

【问题讨论】:

  • 你在哪里调用你的 php 脚本?
  • 几乎所有页面都使用来自 Json 的数据进行加载。
  • 所以您将调用将首先获取基本 url 然后调用实际脚本的脚本?正确吗?
  • 其实不是。我打电话给webaddress.com/token.php 作为第一个脚本。 SERVER_BASE_URL 对于所有脚本都是相同的。这就是我这样使用的原因
  • 所以想调用类似 ipaddress/token.php 的东西

标签: android eclipse android-activity android-sqlite android-database


【解决方案1】:

应用首次启动

输入活动

XML:

<EditText
android:id = "@+id/ip_address_text"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:hint = "Enter your IP Address"
android:inputType = "text"/>

<Button
android:id = "@+id/button_submit"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "SUBMIT"/>

Java:

EditText ipText = (EditText) findViewById(R.id.ip_address_text); 
Button submitButton = (Button) findViewById(R.id.button_submit);
submitButton.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
SharedPreference sp = getSharedPreferences("ANY NAME FOR PREFERENCE", Context.MODE_PRIVATE);
sp.edit().putString("ip_address", ipText.getText().toString()).apply();
      }
    });

脚本调用活动

Java:

在访问服务器之前。

SharedPreference sp = getSharedPreferences("ANY NAME FOR PREFERENCE", Context.MODE_PRIVATE);
String ipAddress = sp.getString("ip_address", "Default value");

更新代码

public interface Urls {
SharedPreference sp = getSharedPreferences("ANY NAME FOR PREFERENCE", Context.MODE_PRIVATE);
    public String SERVER_BASE_URL = sp.getString("ip_address", "Default value");
    public String URL_DIRECT =SERVER_BASE_URL + "token.php";
    public String URL_DIRECT2= SERVER_BASE_URL + "token2.php";
    public String URL_DIRECT3= SERVER_BASE_URL + "token3.php";
    }

并使用变量 url 访问服务器。

您的问题不是指向特定部分,而是询问 为整个实施。尝试缩小你的问题,这将是 有助于求解者回答而不是要求整个 实现代码。

祝你好运!!

参考链接使用

Shared Preferences 1

Shared Preferences 2

【讨论】:

  • 感谢 Ragu Swaminathan。让我试试看。
  • 还有 Ragu Swaminathan 我不需要整个代码。我需要得到可以在这里正确实施的想法。此外,我实际上想更改 Urls 类中的值,这样我只需要在每个活动中调用 URL_DIRECTURL_DIRECT2 而不是调用 String url = ipAddress+"token2.php";
  • 请张贴您的网址代码。我会更好地为你回答吗?
  • 我说的是我的问题中给出的 Urls(接口类)。
猜你喜欢
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 2013-11-16
相关资源
最近更新 更多