将文件从服务器加载到适配器视图翻转器

时间:2017-11-17 14:03:34

标签: android

我是使用android studio adapter flipper视图的新手。我成功地从服务器检索图像和视频,滑入适配器视图鳍状肢。我使用以下代码行使视图每隔10秒更改一次项目:

mAdapter.setFlipInterval (1000);

我也让它开始自动翻转。但现在我遇到了问题,问题是适配器视图翻板甚至在视频加载完成之前就开始翻转。我希望只有当文件从服务器加载时,鳍状肢才开始计数:

以下是代码的一小部分:

public class Flipper extends AppCompactActivity {

    ArrayList <Flip> arrayList ;
    private AdapterViewFlipper mAdapter;

@Override
    ...
//the acivity is created here
    ...
    mAdapter = findViewById(R.id.adapter);
    arrayList = new ArrayList <>();
    startTheFlip ();
    }
public void startTheFlip(){
    StringRequest Sr = new StringRequest (Request.Method.POST, yourUrl, 
new Response.Listener <String>(){
        public void onResponse(response){
            JsonArray array = new JsonArray (response);
            for (int r = 0; r  < array.length; r++){
                JsonObject obj = array.getJsonObject (r);
                arrayList.add (new Flip (
                    obj.getString ("type"),
                    obj.getString ("file")
                ));
            }
        FlipperAdapter adap = new FlipperAdapter ();
        mAdapter.setAdapter (adap);
        mAdapter.setAutoFlipping (true);
        mAdapter.setFlipInterval (1000);
        mAdapter.startFlipping();
        }
    });
}

    private class FlipperAdapter extends BaseAdapter {
        Contex ctx;
        ArrayList <Flip> arrayList;
        Flipper (Contex ctx, ArrayList <Flip> arrayList){
        this.ctx=ctx;
        this.arrayList = arrayList;
    }
        ...
    //Here the methods are implemented
        ...

        LayoutInflater inflater = LayoutInflater.from(ctx);
        View view = inflater.inflate (R.layout.flipper, null);

        ImageView mImage = view.findViewById(R.id.image);
        VideoView mVideo = findViewById (R.id.video);

        //i is an int parameter from one of the methods
        Flip flip = arrayList.get (i);
        if (flip.getType.equals ("image/jpeg")){
            Glide.with (ctx).load (flip.getFile).into (mImage);
        }else if (flip.getType.equals ("video/mp4")){
            mVideo.loadURL (flip.getFile);
            mVideo.start ();
            }
    }
}

Flip类是一个类,它将URL中的JSON结果存储为String Array。请伙计们,我真的需要你的帮助。

0 个答案:

没有答案