java—如何执行ontouch中动态创建的按钮的功能

yfjy0ee7  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(437)

我已经把画廊里的照片 RelativeLayout 试着把 Button 动态使用单独的id,在 onTouch . 现在,我正在尝试根据按钮id设置和获取值。(在我的代码中,现在所有按钮的值都相同。) Button ).
我的代码:

  1. viewGroup= (ViewGroup) this.findViewById(createdPinViewGroup);
  2. viewGroup.setId(R.id.ImageId);
  3. i =0
  4. selectedPicture.setOnTouchListener(new View.OnTouchListener() {
  5. @Override
  6. public boolean onTouch(View v, MotionEvent event) {
  7. int x = (int) event.getX();
  8. int y = (int) event.getY();
  9. rparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
  10. rparams.addRule(RelativeLayout.ACCESSIBILITY_LIVE_REGION_ASSERTIVE);
  11. rparams.leftMargin = x;
  12. rparams.topMargin = y;
  13. rparams.height = 48;
  14. rparams.width = 60;
  15. btn = new Button(getBaseContext());
  16. btn.setId(i + 1);
  17. btn.setText("B" + i);
  18. btn.setLayoutParams(rparams);
  19. viewGroup.addView(btn);
  20. i++;
  21. btn.setOnClickListener(new View.OnClickListener() {
  22. @Override
  23. public void onClick(View v) {
  24. Toast.makeText(getBaseContext(), "Button is Clicked", Toast.LENGTH_LONG).show();
  25. });
krugob8w

krugob8w1#

您可以在onclick本身中获取id

  1. btn.setOnClickListener(new View.OnClickListener() {
  2. @Override
  3. public void onClick(View v) {
  4. Toast.makeText(getBaseContext(), "Button is Clicked "+v.getId(), Toast.LENGTH_LONG).show();

});

myss37ts

myss37ts2#

试试这些,也许对你有用:

  1. Button[] btn = new Button[100];
  2. viewGroup= (ViewGroup) this.findViewById(createdPinViewGroup);
  3. viewGroup.setId(R.id.ImageId);
  4. i =0
  5. selectedPicture.setOnTouchListener(new View.OnTouchListener() {
  6. @Override
  7. public boolean onTouch(View v, MotionEvent event) {
  8. int x = (int) event.getX();
  9. int y = (int) event.getY();
  10. rparams = new
  11. RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
  12. RelativeLayout.LayoutParams.WRAP_CONTENT);
  13. rparams.addRule(RelativeLayout.ACCESSIBILITY_LIVE_REGION_ASSERTIVE);
  14. rparams.leftMargin = x;
  15. rparams.topMargin = y;
  16. rparams.height = 48;
  17. rparams.width = 60;
  18. i++;
  19. btn[i] = new Button(getBaseContext());
  20. btn[i].setId(i + 1);
  21. btn[i].setText("B" + i);
  22. btn[i].setLayoutParams(rparams);
  23. viewGroup.addView(btn);
  24. btn[i].setOnClickListener(new View.OnClickListener() {
  25. public void onClick(View v) {
  26. //your desired functionality
  27. }
  28. });
  29. }
展开查看全部

相关问题