2012-06-05 89 views
0

我想根據用戶請求的數量訪問同一個類。我試過使用putExtra的this tutorial,但它是兩個不同類的示例,而我需要意圖調用同一個類。通過意向發送參數值

這裏我的代碼:

 String dataX="dataX"; 
     int count; 
     while(count >0){ 
      count--; 
      startActivity(M_InsertData.this, M_InsertData.class); 
      Intent toAlternative = new Intent(M_InsertData.this, M_InsertData.class); 
      toAlternative.putExtra(dataX, count); 

     } 

三江源:)

+0

爲什麼你想打兩次同樣的電話?您可以在這裏使用onResume()方法,而不是再次調用活動。如果需要,使用全局變量進行計數。 – Sana

+0

不是兩次,而是多達用戶輸入。它將循環調用與用戶輸入相同的類。 我想我應該使用全局變量來處理循環,但我很困惑我應該把它放在哪裏。 –

+1

如果您想要使用全局變量,請在類聲明之後(在onCreate方法之前,假設您的類中定義了第一個方法)聲明它的聲明。 – matt5784

回答

1

當你調用startActivity(M_InsertData.this, M_InsertData.class);之前,你真正做的是那些兩個參數澆鑄成的意圖,並在其上調用start活動。然後你創建一個意圖,並添加一些額外的數據,但從不使用它的任何東西。取而代之的是,最後三行在while循環應該讀

 Intent toAlternative = new Intent(M_InsertData.this, M_InsertData.class); 
     toAlternative.putExtra(dataX, count); 
     startActivity(toAlternative); 

這應該正確地傳遞額外的數據(通過意向)到新的活動。

+1

多次調用一個活動會導致活動堆棧中的實例太多,這不是一個好的用戶體驗,而是嘗試調用onResume()方法來嘗試重新佈局活動。 – Sana

+0

的確,性能會受到影響,並不是最直觀的做法 - 但是,他說他希望進行儘可能多的活動,因爲有用戶輸入(我想 - 我可能錯了),而且他的代碼幾乎要做我認爲最好修復錯誤,不要嘗試重寫邏輯。 – matt5784

+0

我一直希望向Jonas展示他開始多項活動的想法。 – Sana