2013-04-14 29 views
0

我的應用程序有一個主要活動,可以產生四個列表活動之一,目標是讓用戶從列表中一個接一個地選擇項目,並根據主活動的submit推動這些選擇到數據庫。Android-從列表活動中返回數據

問題:我不確定如何返回和列表的結果存儲在主要活動。

我不使用的其他活動,因爲它不會允許在同一個屏幕上的「完成」按鈕,列表視圖。

到目前爲止,這是我

主營:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     button1 = (Button) findViewById(R.id.listOneSub); 
     button2 = (Button) findViewById(R.id.listTwoSub); 
     button3 = (Button) findViewById(R.id.listThreeSub); 
     button4 = (Button) findViewById(R.id.listFourSub); 

     button1.setOnClickListener(this); 
     button2.setOnClickListener(this); 
     button3.setOnClickListener(this); 
     button4.setOnClickListener(this); 
    } 


    public void onClick(View v) { 
     if (v == button1) { 
      startActivity(new Intent("net.learn2develop.SecondActivity")); 
     } else if (v == button2) { 
      startActivity(new Intent("net.learn2develop.ThirdActivity")); 
     } else if (v == button3) { 
      startActivity(new Intent("net.learn2develop.FourthActivity")); 
     } else if (v == button4) { 
      startActivity(new Intent("net.learn2develop.FifthActivity")); 
     } 
    } 

列表活動(所有四個是相似的,他們只是有不同的項目):

String [] lstOne; 

    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.secondactivity); 
     ListView lstView = (ListView)findViewById(R.id.android_listOne); 
     lstView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     //lstView.setTextFilterEnabled(true); 

     lstOne = getResources().getStringArray(R.array.one); 

     lstView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, lstOne)); 

     } 




    public void onClick(View view){ 
     ListView lstView = (ListView)findViewById(R.id.android_listOne); 

     String itemsSelected = "Selected items: \n"; 
     for(int i=0; i<lstView.getCount(); i++){ 
      if(lstView.isItemChecked(i)){ 
       itemsSelected += lstView.getItemAtPosition(i) + "\n"; 
      } 
     } 
     Toast.makeText(this, itemsSelected, Toast.LENGTH_LONG).show(); 
     finish(); 
    } 

該列表正在從strings.xml文件生成。我想更新按鈕下方的主視圖,以便在提交之前顯示從每個列表中選擇的內容。

Screen shot

回答

1

使用startActivityForResult而不是startActivityonActivityResult將在您的主要調用。

我也建議合併這些4類轉換成1和發送要顯示字符串數組的識別符。代碼重複是非常糟糕的。

+0

啊這是真的,我只能對這樣的信息發送到活動?我做了重複類,因爲我不知道你可以發送參數給活動。 –

+0

閱讀[Intent](http://developer.android.com/reference/android/content/Intent.html)和putExtra。 –

+0

閱讀有關意圖將是有益的,雖然我沒有找到任何一個我如何發送標識符與我的活動請求。正常的java,當你實例化這個類時,你只需要修改一個類的構造函數,但是這更加複雜。 –