2016-03-03 60 views
1

我从一个活动送我的URL到另一个像这样:如何从其他活动获取URL时设置URL?

startActivity(new Intent(MainActivity.this, SecondActivity.class).putExtra("key", fullurl)); 

并获得这样的:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.test); 
    url = getIntent().getStringExtra("key"); 
} 

如何把它放在这儿?

jsonobject = JSONfunctions.getJSONfromURL(url); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.test); 

    url = getIntent().getStringExtra("key"); 

    TextView txt = (TextView) findViewById(R.id.textView2); 
    txt.setText(url); 

    new DownloadJSON().execute(); 
} 

private class DownloadJSON extends AsyncTask<Void, Void, Void> { 
    @Override 
    protected Void doInBackground(Void... params) { 
     world = new ArrayList<>(); 

     jsonobject = JSONfunctions.getJSONfromURL(url); 
     try { 
      // Some code 
     } 
    } 
} 
+0

你看到正确的从Bundle中获取它后,textview中的URL? – isanjosgon

+0

是的,正确的URL显示在文本视图中。 –

+0

你是否得到任何错误或崩溃?......你的代码看起来很完美。 – Bharatesh

回答

0

你可以做这样的事情

//制作到URL的请求并获得响应 字符串jsonStr = sh.makeServiceCall(URL,ServiceHandler.GET);

 Log.d("Response: ", "> " + jsonStr); 

     if (jsonStr != null) { 
      try { 
       JSONObject jsonObj = new JSONObject(jsonStr); 

       // Getting JSON Array node 
       contacts = jsonObj.getJSONArray(TAG_CONTACTS); 

       // looping through All Contacts 
       for (int i = 0; i < contacts.length(); i++) { 
        JSONObject c = contacts.getJSONObject(i); 

        String id = c.getString(TAG_ID); 
        String name = c.getString(TAG_NAME); 
        String email = c.getString(TAG_EMAIL); 
        String address = c.getString(TAG_ADDRESS); 
        String gender = c.getString(TAG_GENDER); 

        // Phone node is JSON Object 
        JSONObject phone = c.getJSONObject(TAG_PHONE); 
        String mobile = phone.getString(TAG_PHONE_MOBILE); 
        String home = phone.getString(TAG_PHONE_HOME); 
        String office = phone.getString(TAG_PHONE_OFFICE); 

        // tmp hashmap for single contact 
        HashMap<String, String> contact = new HashMap<String, String>(); 

        // adding each child node to HashMap key => value 
        contact.put(TAG_ID, id); 
        contact.put(TAG_NAME, name); 
        contact.put(TAG_EMAIL, email); 
        contact.put(TAG_PHONE_MOBILE, mobile); 

        // adding contact to contact list 
        contactList.add(contact); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } else { 
      Log.e("ServiceHandler", "Couldn't get any data from the url"); 
     } 
0

假设您的网址是一个字符串,并且您希望将其转换为URL对象。

URL mUrl = new URL(url); 
    URI uri = new URI(mUrl.getProtocol(), mUrl.getUserInfo(), mUrl.getHost(), mUrl.getPort(), mUrl.getPath(), mUrl.getQuery(), mUrl.getRef()); 
    mUrl = uri.toURL(); 

之后,你可以使用JSON函数.getJSONfromURL(mUrl);

+0

获取异常URl语法异常 –

+0

请显示您的url字符串 –

+0

String url =“www.abc.com/funlearn/chapterDetails?topicId=”; String fullurl = url + newid +“&page =”+ topic; –

0

步骤1

变化

private class DownloadJSON extends AsyncTask<Void, Void, Void> { 
@Override 
protected Void doInBackground(Void... params) { 

private class DownloadJSON extends AsyncTask<URL, Void, Void> { 
@Override 
protected Void doInBackground((URL... url) { 

步骤2

变化

new DownloadJSON().execute(); 

try{ 
    URL myUrl = new URL(url); 
    new DownloadJSON().execute(myUrl); 
} 
catch(MalformedURLException mue){ 
    Log.e("Invalid url","Invalid url"); 
} 

步骤3

变化

jsonobject = JSONfunctions.getJSONfromURL(url); 

jsonobject = JSONfunctions.getJSONfromURL(url[0]); 
+0

获取大量编译错误 –

+0

请发布错误。 – Rohit5k2

+0

这条线上的未处理的异常new DownloadJSON()。execute(new URL(url));格式错误的url异常 –