2
我遇到了正在开发的应用程序的问题。我有一个初始微调屏幕(选择客户端)和1行内部元素。当我点击加号按钮时,它会添加更多的这些行。问题是因为我将它们添加到XML布局文件中,我无法更改ID(或者我可以吗?)。所以我不能从他们每个人的价值观,即使onItemSelected作品的客户微调,但不为其他人。我在这里获得了屏幕截图以及用于创建第一行/其他行的代码片段。具有相同ID的纺纱机/如何以编程方式添加行
截图:http://dl.dropbox.com/u/9667835/Screenshot_2012-11-14-10-44-38.png
private void startRow()
{
ArrayAdapter<String> adapterUnits = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item);
for(int i=0; i<units_arr.size(); i++)
adapterUnits.add(units_arr.get(i).get("name").toString());
ArrayAdapter<String> adapterVats = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item);
for(int i=0; i<vats_arr.size(); i++)
adapterVats.add(vats_arr.get(i).get("value").toString());
tl = (TableLayout) findViewById(R.id.add_invoice_layout);
LayoutInflater inflater = LayoutInflater.from(this);
View item = inflater.inflate(R.layout.add_invoice_row, tl, false);
Spinner units = (Spinner) item.findViewById(R.id.spinnerUnit);
Spinner vats = (Spinner) item.findViewById(R.id.spinnerVAT);
units.setAdapter(adapterUnits);
vats.setAdapter(adapterVats);
tl.addView(item);
}
看来这工作得很好,我有相同数量的ArrayList和屏幕上的spinners。还有一个问题,如果我不使用ID(或者我应该使用它们?)我应该如何使用onItemSelected侦听器?那也可以用标签来完成吗? –
在这种情况下,你不应该使用ID,我相信。当视图膨胀时,应该连接选择监听器。视图本身应包含选择操作所需的全部信息。 – Daniel
非常感谢!解决了一切! –