繁体   English   中英

Android - 动态设置intent Extras

[英]Android - Dynamically set intent Extras

我正在尝试将ID传递给我在创建时的新活动。

显而易见的解决方案似乎是使用“Intent.putExtra(name,value);”。 但由于意图仅在点击时创建,因此我的所有按钮都具有相同的Intent附加功能(使用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
    }

在代码中,snippit IDList.get(i)超出范围,并且在单击按钮之前不会检查新的Final Int,也超出范围。

还有其他我可以点击发送变量吗?

您可以使用实现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)));
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM