我有一个自定义视图DisView(上下文,位图),我想向其中添加一个LongCLickListener。
单击其他内容后,将显示该视图。
public void onClick(View view) {
...
RelativeLayout toplayout = new RelativeLayout(this);
setContentView(toplayout);
Bitmap bmp2 = BitmapFactory.decodeResource(getResources(), R.drawable.tag3);
tag3 = new DisView(this,bmp2);
tag3.setOnLongClickListener(this);我要补充的是,活动的内容视图最初设置为线性布局,但在单击按钮时,setContentLayout()会对新布局进行相对布局。
接下来,我做了onLongClick方法(该活动的一个方法,实现onlongclicklistener):
@Override
public boolean onLongClick(View view) {
moveTag(view);
return true;
}moveTag()是一个非常简单的TranslateAnimation。我不知道为什么它不能工作。我有一种感觉,可能是因为我改变了布局。
发布于 2010-12-23 19:38:53
你有没有想过用ViewSwitcher来改变你的显示布局?
乔纳森
发布于 2010-12-23 19:47:34
如果toplayout是一个LinearLayout,并且你写了RelativeLayout toplayout = new RelativeLayout(这个);软件通常会在启动时崩溃(或者当这个视图被激活时),如果你现在遇到的是软件一旦启动就崩溃了(或者当你启动这个活动时),这个问题很可能是由这个语句引起的。
发布于 2012-04-11 09:33:05
在您的示例中,您执行了以下操作:
tag3.setOnLongClickListener(this);你为什么干那样的事呢?
setOnLongClickListener接受OnLongClickLIstener.类型的参数类似于:
tag3.setOnLongClickListener((OnLongClickListener) keyHdlr);其中keyHdlr看起来像这样:
OnLongClickListener keyHdlr = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.d("long", "backspace phone land long clicked!!!!!!");
return false;
}
};https://stackoverflow.com/questions/4518343
复制相似问题