2015-09-04 61 views
0

我有一個從JSON文件填充的事件列表。
格式爲:將ListActivity的一個元素鏈接到另一個Activity(參數依賴)

{ 
    "eventId" : "1", 
    "event" : "ABC", 
    "dateStart" : "20151223", 
    "dateEnd" : "20141201", 
    "pin" : false, 
    "attendees" : 233, 
    "location" : "London", 
    "description" : "A Test London event", 
    "photo" : "event1.jpg", 
    "status": "live", 
    "goals": [ "sales", "strategies", "HR", "product people", "data scientists", "investors", "designers", "laywers", "Media", "Sales", "Retailers", "PR"] 
} 

在我EventListActivity,我填充這個JSON的多個元素的ArrayList<Event>。點擊一個事件時,我想要進入一個新的屏幕,顯示該特定事件的所有目標。

所以在描述每個事件的視圖中的XML,我有一個onClick活動:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="180dp" android:paddingBottom="10dp" android:onClick="loadGoalScreen"> 

loadGoalScreen然後繼續應只顯示所選活動的目標(目前它的下一個畫面顯示的目標String[] data = {"Strategists", "Human Resources", ...})的靜態列表:

public void loadGoalScreen(View v) { 
      Intent intent = new Intent(EventListActivity.this, GoalCaptureActivity.class); 
      startActivity(intent); 
} 

我怎樣才能讓我的GoalCaptureActivity屏幕知道僅顯示與所選事件的目標是什麼? I.e我怎麼知道哪個事件被點擊了,這樣我就可以從ArrayList中挑選正確的元素,然後將它傳遞給GoalCaptureActivity類,我只會顯示該特定活動的目標?

+0

把所有的事件在ListView中添加按鈕以顯示下一個活動的信息? – Aquaballin

回答

0

您可以將數據從一個活動通過意圖(對象,字符串,整數等):同時呼籲第二活性,

 Intent intent = new Intent(context, GoalCaptureActivity.class); 
    intent.putExtra("SELECTED_ACTIVITY", activityArra.get(i)); //put object, arrayList, but it should be serializable 
    intent.putExtra("KEY_STRING", "activity_name"); //put string 
    intent.putExtra("KEY_INTEGER", 2); //put int values 
    intent.putExtra("KEY_BOOLEAN", true); //put boolean values 
    intent.putExtra("KEY_CHAR", 'r'); //put char 
    startActivity(intent); 

而在第二個活動,你可以從意向拿回來對象本身, 將這個代碼的OnCreate()次活動的方法,

 Intent intent = getIntent(); 
    if (null != intent) { 
     MyActivity myActivity = intent.getSerializableExtra("SELECTED_ACTIVITY"); 
     String stringData= intent.getStringExtra("KEY_STRING"); 
     int numberData = intent.getIntExtra("KEY_INTEGER", 0); 
     boolean booleanData = intent.getBooleanExtra("KEY_BOOLEAN", false); 
     char charData = intent.getCharExtra("KEY_CHAR", 'a'); 
    } 

讓我知道這對你的作品...

相關問題