我有一个按钮,我想在每次按下它时创建一个ImageView,这个ImageView可以拥有自己的onTouchListener吗? 我有一个按钮创建新的,每当我按下它时,屏幕上会出现一个球,我将能够移动它,当我按下New时再次按下New时,另一个球将出现在屏幕上,具有相同的属性和能力拖放。我在问,因为我在以编程方式创建ImageView时遇到问题,例如:
save = (Button) findViewById(R.id.savebtn);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ImageView asds = new ImageView(this);
asds.setBackgroundResource(R.drawable.element_wall);
asds.setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return false;
}
});
}
});
例如,这不应该如何应用。感谢您阅读本文的时间。
答案 0 :(得分:0)
首先在setOnClickListener之外使用setOnTouchListener。
其次,使用setTag()方法为每个imageview分配一个唯一标记,并使用image.getTag()获取标记,一旦获得具有唯一标记的图像,就可以在特定的imageview上设置OnTouchListener
答案 1 :(得分:0)
两件事。
您需要将视图添加到屏幕上的ViewGroup
之一。例如,如果你有一个包含所有视图的FrameLayout,你可以这样做:
ImageView imageView = new ImageView(this);
FrameLayout frameLayout = (FrameLayout) findViewByid(R.id.container);
frameLayout.addView(imageView);
由于您是在匿名内部类中创建ImageView,因此this
关键字引用匿名内部类,而不是活动。您需要使用您的活动名称限定this
关键字,例如
ImageView imageView = new ImageView(MyActivity.this);