基于EditText输入动态命名对象?

时间:2012-03-14 21:28:23

标签: android object dynamic arraylist

我正在创建一个财务Android应用,它将打开并要求用户添加一个帐户。 (这在页面上始终是静态的。)在Main活动上,Button旁边会有一个EditText框(“添加帐户”)。按下Button时,我想创建一个新的Object,然后将其存储到ArrayList中。帐户列表(如果已添加)将在下面循环(使用相应的动态按钮编辑帐户)。这是我的练习/未完成的代码。这点非常原始!

String accountName = (Whatever is in EditText Box)

ArrayList<Accounts> accountList = new ArrayList<Accounts>();
int accountListSize = accountList.size();

(Button on Click)  {
    Account{accountName} = new Account();  // Not sure how to dynamically name
    accountList.add({accountName}) // Not sure how to dynamically name
}

// iterate through finance loop

for(int i = 0; i < accountList .size(); i++)
{
  // do stuff - Create Dynamicly Edit and Clear Buttons for each account
}

我要克服的一个重大问题是如何动态命名对象?

我是否总体上过度思考这个过程并使其变得比应有的更难?我将创建一个类来处理帐户细节。我最终必须保存数据 - 所以我可能应该废弃面向对象的样式并使用SQLite吗?共享偏好?

任何代码示例都会很棒,但我主要希望找到我应该采用的推荐方法。

1 个答案:

答案 0 :(得分:0)

我建议创建一个在构造函数中使用该名称的Account对象。例如:

public class Account {
    private String name;

    public Account( String name ) {
        this.name = name;
    }

    // ... other account related methods here...
    public String getName() {
        return name;
    }
}

然后在上面的代码中:

List<Account> accountList = new ArrayList<Account>();

(Button on Click)  {
    Account anAccount = new Account( accountName );  // accountName taken from text box.
    accountList.add( anAccount );  
}

然后循环浏览帐户列表:

for( Account account : accountList ) {
    String name = account.getName();
    // .. do whatever you need to for each account...
}

一旦你有了这个Account对象列表,你可以做任何你需要做的事情,比如在SQLite DB中存储以供日后使用等等......

希望这会有所帮助......