2015-12-03 51 views
1

我希望MoviePage在單擊ListView中的相關項目時顯示來自網站的JSON數據。我想讓我的新活動顯示JSON數據 - 我做錯了什麼?

這裏是我的ListView頁面的代碼打開的項目被點擊時,一個新的活動:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      String movieData = ((TextView) view).getText().toString(); 
      Intent newActivity = new Intent(ResultsActivity.this, MoviePage.class); 
      newActivity.putExtra("title", movieData); 
      startActivity(newActivity); 
     } 
    }); 

,這裏是頁面中,我希望顯示在

JSON數據的代碼
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

String keyword = getIntent().getExtras().getString("keyword"); 
    keyword = keyword.replaceAll("\\s", "+"); 

Intent newActivity1 = new Intent(); 
    setResult(RESULT_OK, newActivity1); 

private String movieData(String keyword) { 
    String jsonResult = null; 

    try { 
     URL url = new URL("https://omdbapi.com/?t=" + keyword); 
     HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
     InputStream input = httpURLConnection.getInputStream(); 
     Scanner scanner = new Scanner(input, "UTF-8").useDelimiter("\\A"); 
     jsonResult = scanner.hasNext() ? scanner.next() : ""; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return jsonResult; 
} 
+0

您是否正在解析數據?通過代碼 – Androider

+0

對不起,我是新來的編碼,我不明白這是什麼意思。 – pt89

+0

OK,然後我可以給你的代碼來了解這個過程 – Androider

回答

0
String keyword = getIntent().getExtras().getString("keyword"); 

應該不是這是

String keyword = getIntent().getExtras().getString("title"); 

你應該將你的鍵定義爲常量,這樣你就不會犯這樣的錯誤。

public static final String EXTRA_TITLE = "title"; 

newActivity.putExtra(EXTRA_TITLE, movieData); 

然後,當你把它拿出來

getIntent().getExtras().getString(ClassWhereIDefinedMyKey.EXTRA_TITLE); 
0

相反店JSON對象爲sharedpreferences所以你可以在任何類的application.You的retrive對象 需要將該對象轉換成字符串第一和然後存儲到共享首選,反之亦然link