我试图在创建时将一个ID传递给我的新活动。
显而易见的解决方案似乎是使用“Intent.putExtra(名称,值);”。但是,由于意图只在单击时创建,所以我的所有按钮都有相同的意图附加(通常为null)。
有什么方法可以从循环中初始化这些信息吗?
for ( int i = 0; i< IDList.size() ; i++)
{
//Get Information from ID
btnDetails.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(getApplicationContext(),DetailActivity.class);
intent.putExtra("", IDList.get(i));
startActivity(intent);
}
});
//Add To Screen
}在代码片段中,IDList.get(i)超出了作用域,在单击按钮之前不会检查新的最终Int,也会超出范围。
我还能在点击时发送变量吗?
发布于 2014-02-21 14:28:22
您可以使用一个内部类来实现OnClickListener,并将id作为参数。例如
private class MyOnClickListener implements OnClickListener {
private final int mId;
public MyOnClickListener(int id) {
mId = id;
}
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), DetailActivity.class);
intent.putExtra("", mId);
startActivity(intent);
}
}
for ( int i = 0; i< IDList.size() ; i++) {
btnDetails.setOnClickListener(new MyOnClickListener(IDList.get(i)));
}https://stackoverflow.com/questions/21937078
复制相似问题