Uri.parse给出null值

时间:2014-09-05 05:42:37

标签: java android null

我已成功从其他数据库中获取数据,并可以在TextView上打印。但是,当我尝试将数据传递到下面的Uri.pase()时,它会给我null。

public void gotosite(View v) {
    s = responseTextView.getText().toString();
    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://"+s+""));
    startActivity(i);
}

此方法为TextView打印我的预期数据。我想在Uri.parse()

设置数据
public  void  setTextToTextView(JSONArray jsonArray) {
    String s = "";
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject json = null;
        try {
            json = jsonArray.getJSONObject(i);
            s = s + json.getString("adUrl");
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    this.responseTextView.setText(s);
}

1 个答案:

答案 0 :(得分:0)

您需要全局声明String以在不同方法中使用。确保您首先运行setTextToTextView方法,然后将gotosite()方法作为String s=""运行。

String s; // declare this globally

public  void  setTextToTextView(JSONArray jsonArray) {

    for (int i = 0; i < jsonArray.length(); i++) {

        JSONObject json = null;
        try {
            json = jsonArray.getJSONObject(i);
            s = s + json.getString("adUrl");
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    this.responseTextView.setText(s);

}

public void gotosite(View v) {

   s=responseTextView.getText().toString(); // either use this or you can now use string s directly 

        Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://"+s+""));
        startActivity(i);

    }