我是使用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。请伙计们,我真的需要你的帮助。