【发布时间】:2016-01-23 13:08:42
【问题描述】:
我遇到了如何修改 ArrayList> 中的值的麻烦。
例如, 我有一个 ArrayList
1 个
2 两个
三三
现在我想编辑 1 到 0 零然后列表将作为
0 零
2 两个
三三
我该怎么做?
抱歉,我忘记发布我的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getLayoutInflater().inflate(R.layout.budgetcounting, contentFrame);
setTitle(drawer_menu[3]);
listView = (ListView)findViewById(R.id.bc_listItems);
list = new ArrayList<HashMap<String, String>>();
balance = (TextView)findViewById(R.id.bc_balance);
budget = (TextView)findViewById(R.id.bc_budget);
balance.setText("Balance: ");
budget.setText("Budget: ");
addBtn = (Button)findViewById(R.id.bc_btnadd);
budgetBtn = (Button)findViewById(R.id.bc_btnbudget);
addBtn.setOnClickListener(this);
budgetBtn.setOnClickListener(this);
HashMap<String, String> temp = new HashMap<String, String>();
temp.put(FIRST_COLUMN, "1");
temp.put(SECOND_COLUMN, "one");
HashMap<String, String> temp1 = new HashMap<String, String>();
temp1.put(FIRST_COLUMN, "2");
temp1.put(SECOND_COLUMN, "two");
HashMap<String, String> temp2 = new HashMap<String, String>();
temp2.put(FIRST_COLUMN, "3");
temp2.put(SECOND_COLUMN, "three");
list.add(temp);
list.add(temp1);
list.add(temp2);
adapter = new BC_ListViewAdapter(this, list);
listView.setAdapter(adapter);
registerForContextMenu(listView);
}
这里是删除部分的代码:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.bc_contextmenu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
switch (item.getItemId()) {
case R.id.bc_contextmenu_delete:
list.remove(info.position);
adapter.notifyDataSetChanged();
return true;
default:
return super.onContextItemSelected(item);
}
}
适配器:
public class BC_ListViewAdapter extends BaseAdapter {
public ArrayList<HashMap<String, String>> list;
Activity activity;
TextView txtFirst;
TextView txtSecond;
public BC_ListViewAdapter(Activity activity, ArrayList<HashMap<String, String>> list) {
super();
this.activity = activity;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = activity.getLayoutInflater();
if (convertView == null) {
convertView = inflater.inflate(R.layout.bc_column, null);
txtFirst = (TextView) convertView.findViewById(R.id.bc_itemname);
txtSecond = (TextView) convertView.findViewById(R.id.bc_itemvalue);
}
HashMap<String, String> map = list.get(position);
txtFirst.setText(map.get(FIRST_COLUMN));
txtSecond.setText(map.get(SECOND_COLUMN));
return convertView;
}
}
【问题讨论】:
-
您的代码在哪里?你试过什么?
-
这是一个包含三个映射的列表(每个条目一个条目)还是一个包含一个映射的列表(三个条目)?
-
对不起,我忘了发布我的代码。在这里,我正在尝试编辑这些值。我希望将来做一个柜台。那就是我有10美元。我在清单中添加了一个售价 8 美元的糖果。该应用程序将显示我还剩下 2 美元。但是我需要编辑值以防我输入错误的值。非常感谢!