2012-03-14 39 views
1

我正在創建一個財務Android應用程序,該應用程序將打開並要求用戶添加一個帳戶。 (這在頁面上始終是靜態的。)在主活動中,它將在按鈕旁邊有一個EditText框(「添加帳戶」)。當按下按鈕時,我想創建一個新的對象,然後它將被存儲到一個ArrayList中。帳戶列表(隨着它們的添加)將在下面循環(使用相應的動態按鈕來編輯帳戶)。這是我的練習/未完成的代碼。這是非常原始的!基於EditText輸入動態命名對象?

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?共享偏好?

任何代碼示例都很棒,但我主要希望找到我應該採用的推薦方法。

+0

我肯定會推薦使用SQLite來做到這一點。 – TheLastBert 2012-03-14 21:38:13

回答

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數據庫中存儲以備後用,等等......

希望這有助於...

+0

謝謝,這是很好的信息! – KickingLettuce 2012-03-15 04:45:37