启动时我需要为Activity
设置动画。活动从BaseAdapter
课程开始。我尝试使用overridePendingTransition()
,但我似乎无法在点击事件中使用它。我怎么能过来这个?
holder.userpic.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.d(" ", " value " + obj.get(position).get_post_id());
Intent appInfo = new Intent("android.intent.action.Profile");
appInfo.putExtra("pk", obj.get(position).get_foodie_id());
context.startActivity(appInfo);
overridePendingTransition(R.anim.full_side_up,0); // cant use this
}
});
答案 0 :(得分:1)
您需要将Context
附加为:
context.overridePendingTransition(R.anim.full_side_up,0);
或者您可以在新onResume
中使用Activity
方法中的转换:
@Override
public void onResume() {
super.onResume();
overridePendingTransition(R.anim.full_side_up,0);
}
让我知道这是否有效。
答案 1 :(得分:0)
overridePendingTransition
是Activity
类的方法。您必须持有对活动的引用。
另一种方法是使用onClick
属性在XML中指定您的侦听器,如下所示:
<ImageView
id="@+id/user_pic"
...
onClick="onClickUserPic" />
然后在您的活动中创建方法onClickUserPic(View)
(其中包含由适配器类填充的ListView):
public void onClickUserPic(View view) {
int position = (Integer)view.getTag(); // here is stored position in list
Log.d(" ", " value " + obj.get(position).get_post_id());
Intent appInfo = new Intent("android.intent.action.Profile");
appInfo.putExtra("pk", obj.get(position).get_foodie_id());
context.startActivity(appInfo);
overridePendingTransition(R.anim.full_side_up,0);
}
请注意,此方法必须位于此方法以及包含可单击图像视图的任何其他活动中。如果不是,您可以点击NoSuchMethodException
。
最后将此行添加到您的适配器:
holder.userpic.setTag(Integer.valueOf(position)); // save position for reference
还要确保您可以从活动中访问obj
。