我ArrayList在我的代码中使用了一个由一个EditText字段填充的代码,但是我想要限制ArrayList它,所以它只能容纳10个值.添加10个值后,如果另一个尝试添加,我只需要它不添加到Array.任何人有任何想法如何做到这一点?
private static ArrayList<String> playerList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
Sap*_*kar 10
如果您无法控制向列表添加元素的函数,则可能需要覆盖ArrayList add.
public class MySizeLimitedArrayList extends ArrayList<Object> {
@Override
public boolean add(Object e) {
if (this.size() < 10) {
return super.add(e);
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
在你的处理程序方法:
if(playerList.size() < 10) {
// playerList.add
} else {
// do nothing
}
Run Code Online (Sandbox Code Playgroud)
编辑:你的错误在这里:
if(playerList.size() < 10) {
Button confirm = (Button) findViewById(R.id.add);
confirm.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
EditText playername = (EditText) findViewById(R.id.userinput);
playerList.add(playername.getText().toString());
adapter.notifyDataSetChanged();
playername.setText("");
}});
} else {
// do nothing
}
Run Code Online (Sandbox Code Playgroud)
您应该检查内部的大小onClickListener,而不是外部:
Button confirm = (Button) findViewById(R.id.add);
confirm.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
EditText playername = (EditText) findViewById(R.id.userinput);
if(playerList.size() < 10) {
playerList.add(playername.getText().toString());
adapter.notifyDataSetChanged();
playername.setText("");
} else {
// do nothing
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43762 次 |
| 最近记录: |