2011-03-21 87 views
0

我正在處理存儲處理應用程序(實際存儲)。我的應用程序正在調用按鈕按下ZXing條形碼閱讀器,掃描完代碼後,彈出一個新的活動(窗口)。在哪裏我可以閱讀掃描的代碼,並且我可以投入一定的金額(我想從該產品購買多少)。我到達那裏的下一個和結束按鈕,在結束按鈕我回到主窗口。在下一個按鈕中,ZXing再次被調用,我掃描結果窗口彈出,數量輸入等等等等...現在,我要將掃描代碼+數量存儲在一個數組中。所以我可以在ListView中顯示它們。我得到這個:Android,陣列問題

String[] names = new String[] { "Linux", "Windows7", "Eclipse", "Suse", "Ubuntu", "Solaris", "Android", "iPhone"}; 

,所以我知道這就是我如何做一個陣列,數據和多數民衆贊成我如何顯示它:

this.setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked, product)); 

我想知道我是怎麼做的空數組,以及如何我可以添加新的字符串,當我按下「下一步」按鈕時,我將在活動之間傳遞數組。就是這樣了。嗯,是的,有可能編輯數組的特定部分,這就是列表的原因,我向用戶顯示數組,因此他可以在Eclipse行上單擊,然後單擊它,然後他可以在Android中編寫代碼並保存。

我希望有人可以幫助或給我一些提示這兩個問題。謝謝你在前面。

+0

感謝您的兩個答案,虐待試試看。 – 2011-03-22 07:37:21

回答

2

如果您使用了ArrayList,那麼您會更加靈活。您不需要更改ArrayAdapter部分,因爲它具有可與ArrayLists配合使用的構造函數。

在這裏看到的文檔:http://developer.android.com/reference/java/util/ArrayList.html

ArrayList中,您可以更換,追加,並根據需要刪除儘可能多的元素,而不必擔心重新分配您的陣列或任何其他低級別運行你需要,如果你做的'd實現了你自己的數據結構。

下面是我與其他玩了一天整個例子:

import java.util.ArrayList; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.View.OnKeyListener; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.ListView; 

public class TODOActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     // Get a handle to the ListView and hook it up to the todoList via the 
     // adapter. 
     ListView myListView = (ListView) findViewById(R.id.myListView); 
     final ArrayList<String> todoList = new ArrayList<String>(); 
     final ArrayAdapter<String> todoListAdapter = new ArrayAdapter<String>(
       this, android.R.layout.simple_list_item_1, todoList); 
     myListView.setAdapter(todoListAdapter); 
     todoList. 
     // Get a handle to the EditText and set a key listener to enter text. 
     // with the dpad or enter key. 
     final EditText myEditText = (EditText) findViewById(R.id.myEditText); 
     myEditText.setOnKeyListener(new OnKeyListener() { 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if (event.getAction() == KeyEvent.ACTION_DOWN 
         && (keyCode == KeyEvent.KEYCODE_DPAD_CENTER 
           || keyCode == KeyEvent.KEYCODE_ENTER)) { 
        todoList.add(0, myEditText.getText().toString()); 
        todoListAdapter.notifyDataSetChanged(); 
        myEditText.setText(""); 
        return true; // consume event 
       } 
       // TODO Auto-generated method stub 
       return false; 
      } 
     }); 

    } 
0

使用ArrayList<String>代替String[]嘗試。它多一點的開銷,但它可以讓你做的事情一樣

arrayList.add("Hello, world!");