0

onItemClickListenerListViewのメソッドからImageViewをアニメーション化することはできません。ListViewはフラグメント内にあります。誰かが私が何をすべきかを提案できますか?

public class MainFragment extends Fragment {

View view;



public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sis){
    View view = inflater.inflate(R.layout.fragment_layout, container, false);
    ListView lv = (ListView)view.findViewById(R.id.listf);
    this.view= view;


lv.setOnItemClickListener(new OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id){


          ImageView i = (ImageView)view.findViewById(R.id.imgv);
          AnimationSet as = new AnimationSet(true);
          Animation animation1 = AnimationUtils.loadAnimation(this, R.anim.anim1);              
          Animation animation2 = AnimationUtils.loadAnimation(this, R.anim.anim2);
          as.addAnimation(animation1);
          as.addAnimation(animation2);
          i.setImageResource(R.drawable.logocpic1);
          i.startAnimation(as);
    }
}
4

3 に答える 3

2
I think you have to try this following code it works for me....

アニメーションanimation1=AnimationUtils.loadAnimation(getapplicationContext()、R.anim.anim1);

それ以外の

アニメーションanimation1=AnimationUtils.loadAnimation(this、R.anim.anim1);

それはあなたのために働くかもしれません。

于 2013-04-18T10:52:11.053 に答える
1

UIスレッドではなくUIスレッドでUI操作を行っているため、エラーが発生しています。以下のコードを使用できます。

public class MainFragment extends Fragment {
View view;
ImageView i;
.
.
.
.

lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
.
.
.   


   getActivity().runOnUiThread(new Runnable() {
      public void run() {
         i = (ImageView)getActivity().findViewById(R.id.imgv);
      }
   });
于 2012-12-06T14:20:20.110 に答える
0

好きに変えてください

Animation animation1 = AnimationUtils.loadAnimation(MainFragment.this, R.anim.anim1);
于 2015-03-18T09:37:00.550 に答える