2011-03-21 71 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!");