2015-01-13 67 views
0

Android新手在這裏。從列表視圖動態加載內容到另一個活動

我用我的網站的API來填充數據爲Android ListView 第一個屏幕它被稱爲GameFragment場景。遊戲片段從我的網站加載遊戲url 我能夠成功列出所有遊戲。所以我下一步就是在用戶點擊遊戲時顯示與遊戲有關的所有文章。使用我的網站的API http://www.gamerzwiki.com/api/news.json?game_id=qwert133(無論該項目的ID)的URL

加載內容

try { 
     JSONArray games = gp.loadGamesFromApi(); 
     ArrayList<Games> listData = new ArrayList<Games>(); 

     if(games != null){ 
      for(int x = 0 ; x<games.length() ; x++){ 
       JSONObject game = games.getJSONObject(x); 
       try { 
        Games game1 = new Games(); 
        game1.title=game.getString("title"); 
        game1.id = game.getInt("id"); 
        listData.add(game1); 
        //free game 1 
        game1 = null; 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
     ArrayAdapter<Games> adapter = new ArrayAdapter<Games>(getActivity(),android.R.layout.simple_list_item_1, listData); 
     setListAdapter(adapter); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

所以我有一個聽衆

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    Object item = l.getSelectedItem(); 

    Toast.makeText((Context)getActivity(),item.title.toString() , Toast.LENGTH_LONG).show(); 

    Intent intent = new Intent(v.getContext(), NewsActivity.class); 
    startActivity(intent); 
} 

但似乎我不能讓該物品的屬性

但我不知道如何在ListView上做到這一點。所以,我想問一下您的專家建議

+0

你想要與遊戲ID調用第二個網址? – Mohan

+0

yes2 ..所以我想附加gameid到列表視圖中的每個項目 –

+0

使用onItemClick偵聽器獲取gamedi並使用intent將該ID傳遞給另一個活動 – Mohan

回答

1

你可以做的是落實在你的ListView的onClick監聽器,擁有所有的遊戲: -

listview.setOnItemClickListener(new OnItemClickListener(){ 
@Override 
public void onItemClick(AdapterView<?>adapter,View v, int position){ 

Games game = adapter.getItem(position); 

Intent intent = new Intent(Activity.this,destinationActivity.class); 
intent.putExtra("id",game.id); 
startActivity(intent); 

    } 
}); 
在你的其他活動

檢索該爲: -

String id=getIntent.getStringExtra("id"); 

,現在你可以使用這個號碼,以使Web服務調用您的活動,這裏ItemClicked是你使用的是有你的所有遊戲來填充你的列表視圖模型類

+0

謝謝@Prmod Yadav,我可以傳遞一個對象到列表視圖嗎? –

+0

你需要將對象傳遞給列表視圖的活動或片段不是列表視圖,而是從你的web服務中,我認爲你只需要id來獲取遊戲中的項目,爲什麼你想傳遞整個對象 –

+0

嗯,不好意思,我很小心。你可以給我一個例子嗎? –

0

您可以通過在意圖使用putExtra

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    Games item = adapter.getItem(position); 

    Intent intent = new Intent(v.getContext(), NewsActivity.class); 
    intent.putExtra("id", item.id); 
    startActivity(intent); 
} 

在您接收活動傳遞活動之間的數據做

String id = getIntent().getStringExtra("id"); 

您可以通過putExtra通過基本數據類型。如果你想通過自定義對象,你必須實現Parcelable http://developer.android.com/reference/android/os/Parcelable.html

相關問題