动画活动在Android中开始

时间:2014-03-21 00:52:18

标签: android android-listview android-animation onclicklistener

启动时我需要为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
    }
});

2 个答案:

答案 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)

overridePendingTransitionActivity类的方法。您必须持有对活动的引用。

另一种方法是使用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