2014-12-19 54 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

相关问题