Dynamically name objects based on EditText input?

99封情书 提交于 2019-12-11 13:10:28

问题


I am creating a finance Android app that will open up and ask the user to add an account. (This will always be static on the page.) On the Main activity, it will have an EditText box next to a Button ("Add Account"). When the Button is pressed, I want a new Object created and it will then be stored into an ArrayList. The List of accounts (as they are added) will then be looped below (with corresponding dynamic buttons to edit the account). This is my practice/unfinished code. It is very raw at this point!

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
}

One of the big issues I am trying to overcome is how to name an Object Dynamically?

Am I over-thinking this process overall and making it harder than it should be? I am going to create a class to handle the account specifics. I eventually have to keep the data stored--so maybe should I scrap the Object orientated style and use SQLite? Shared-preferences?

Any code samples would be great, but I am mostly hoping to find the recommend method I should take.


回答1:


I would recommend to create an Account object that takes the name in the constructor. For example:

public class Account {
    private String name;

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

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

Then in your code above:

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

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

Then to loop through the account list:

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

Once you have this list of Account objects, you can do anything you need to do with them, such as storing in SQLite DB for later, etc...

Hope this helps...



来源:https://stackoverflow.com/questions/9710550/dynamically-name-objects-based-on-edittext-input

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!