2014-12-19 56 views
-4

我正在製作一個食物跟蹤應用程序,並希望讓用戶填寫1項活動的食物類別和食物項目,提交併在下一個活動中查看它們。他們應該能夠提交多種食品,並且所有食品都應該出現在第二項活動中。但是,只有他們提交的最後一個出現在第二個活動中。如何將多個條目從一個活動傳遞給另一個並保存它們?

public class MainActivity extends ActionBarActivity { 

EditText fooditem; 
Spinner categorySpinner;  
Button submitButton; 
Button foodlistButton; 

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

    fooditem = (EditText) findViewById(R.id.fooditemEditText); 
    categorySpinner = (Spinner) findViewById(R.id.categorySpinner);    
    submitButton = (Button) findViewById(R.id.submitButton);  
    foodlistButton = (Button) findViewById(R.id.foodlistButton); 

    foodlistButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       String stringCategory2 = categorySpinner.getSelectedItem().toString(); 
       String stringFooditem2 = fooditem.getText().toString(); 

       Intent intent = new Intent(getApplicationContext(),ListActivity.class); 
       intent.putExtra("category2", stringCategory2); 
       intent.putExtra("fooditem2", stringFooditem2); 
       //intent.putExtras(arrayFoodItems); 

       startActivity(intent); 

      } 

    }); 

這是我的活動兩個代碼:

public class ListActivity extends ActionBarActivity { 

Button submitButton; 
Button p2Button; 
TextView p2TextView; 

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

    submitButton = (Button) findViewById(R.id.submitButton); 
    p2TextView = (TextView) findViewById(R.id.p2_foodlistTextView); 
    p2Button = (Button) findViewById(R.id.p2_button); 

    String category = getIntent().getStringExtra("category2"); 
    String fooditem = getIntent().getStringExtra("fooditem2"); 

    if(fooditem != null && !fooditem.isEmpty()) 
    {    
     p2TextView.append(category + ": " + fooditem + "\n"); 
    } 

    p2Button.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      Intent intent = new Intent(getApplicationContext(),MainActivity.class); 
      startActivity(intent); 
     } 

    }); 

} 
+0

上述代碼中的錯誤是什麼?因爲你只在一個變量中傳遞一個元素,它只會傳遞這個值 – 2014-12-19 11:44:14

回答

1

創建字符串ArrayList並添加上的所有值和提交按鈕點擊通ArrayList另一個Activity

添加值,如:

List<String> category=new ArrayList<String>(); 
category.add("First"); 
category.add("Two"); 

然後通過這個ArrayList作爲附加到另一個Activity並顯示它。

+0

謝謝,我確實嘗試使用一個數組,但不確定如何傳遞「無限」值。我該如何做到這一點,以便我可以不斷提交食物,並且不斷添加到數組和第二個活動中? – 2014-12-19 11:49:57

+0

@SoraT。創建一個'Array'或'ArrayList'的單例類。更好地使用'ArrayList' .. – 2014-12-19 11:52:29

+0

對不起,我沒那麼有經驗,而且我的英語也不好。單身課是什麼意思? – 2014-12-19 11:58:01

相關問題