Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更新Mysql数据库时无法在Android中更新用户界面_Java_Android_Mysql - Fatal编程技术网

Java 更新Mysql数据库时无法在Android中更新用户界面

Java 更新Mysql数据库时无法在Android中更新用户界面,java,android,mysql,Java,Android,Mysql,我正在开发一个电子商务应用程序 我正在从siteground使用mysql数据库,并使用Volley类检索数据。问题是,当我在表中填充任何新数据时,当我重新打开片段时,它也应该反映在片段中,但它没有发生 我必须卸载我的应用程序,然后重新运行android代码,然后才能在我的回收器视图中看到更新的数据。我在类中使用字符串请求来检索数据。我不知道是什么问题;是不是因为我无法正确关闭该片段,并且它正在加载以前的数据,直到我不卸载它 这是我的片段 public class Fragment_Women_

我正在开发一个电子商务应用程序

我正在从siteground使用mysql数据库,并使用Volley类检索数据。问题是,当我在表中填充任何新数据时,当我重新打开片段时,它也应该反映在片段中,但它没有发生

我必须卸载我的应用程序,然后重新运行android代码,然后才能在我的回收器视图中看到更新的数据。我在类中使用字符串请求来检索数据。我不知道是什么问题;是不是因为我无法正确关闭该片段,并且它正在加载以前的数据,直到我不卸载它

这是我的片段

public class Fragment_Women_Apparels extends Fragment {

private View v;
private RecyclerView recyclerView;

ArrayList<String> id1,name,brand,gender,discount,desc,sellprice,markprice,rating,type,size,category,length,
                    image1,image2,image3,image4,image5,shop,color,stock,material;

//5cbytcuv57x4

ProgressBar progressBar;
Animation animation;

public Fragment_Women_Apparels() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    v = inflater.inflate(R.layout.fragment_women__apparels_, container, false);

    progressBar=v.findViewById(R.id.progress);
    animation= AnimationUtils.loadAnimation(getActivity(),R.anim.rotate);
    progressBar.startAnimation(animation);

    id1=new ArrayList<>();
    name=new ArrayList<>();
    brand=new ArrayList<>();
    gender=new ArrayList<>();
    discount=new ArrayList<>();
    desc=new ArrayList<>();
    sellprice=new ArrayList<>();
    markprice=new ArrayList<>();
    rating=new ArrayList<>();
    type=new ArrayList<>();
    size=new ArrayList<>();
    category=new ArrayList<>();
    length=new ArrayList<>();
    image1=new ArrayList<>();
    image2=new ArrayList<>();
    image3=new ArrayList<>();
    image4=new ArrayList<>();
    image5=new ArrayList<>();
    shop=new ArrayList<>();
    color=new ArrayList<>();
    stock=new ArrayList<>();
    material=new ArrayList<>();





    recyclerView=v.findViewById(R.id.recycler);
//  recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));


    GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(),2,RecyclerView.VERTICAL,false);
    recyclerView.setLayoutManager(gridLayoutManager); // set LayoutManager to RecyclerView

    RequestQueue rq = Volley.newRequestQueue(getActivity());
    String url = "-------------------MY-----API-----------------------";
    StringRequest sr= new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

            try {
                JSONObject jo = new JSONObject(response);
                JSONArray ja = jo.getJSONArray("result");



                for(int i =0;i<ja.length();i++)
                {

                    JSONObject jo1 = ja.getJSONObject(i);

                    String ID=jo1.getString("ID");
                    String NAME=jo1.getString("NAME");
                    String BRAND=jo1.getString("BRAND");
                    String GENDER=jo1.getString("GENDER");
                    String DISCOUNT=jo1.getString("DISCOUNT");
                    String DESC=jo1.getString("DESCRIPTION");
                    String SELLPRICE=jo1.getString("SELLPRICE");
                    String MARKPRICE=jo1.getString("MARKPRICE");
                    String RATING=jo1.getString("RATING");
                    String TYPE=jo1.getString("TYPE");
                    String SIZE=jo1.getString("SIZE");
                    String CATEGORY=jo1.getString("CATEGORY");
                    String LENGTH=jo1.getString("LENGTH");
                    String IMAGE1=jo1.getString("IMAGE1");
                    String IMAGE2=jo1.getString("IMAGE2");
                    String IMAGE3=jo1.getString("IMAGE3");
                    String IMAGE4=jo1.getString("IMAGE4");
                    String IMAGE5=jo1.getString("IMAGE5");
                    String SHOP=jo1.getString("SHOP");
                    String COLOR=jo1.getString("COLOR");
                    String STOCK=jo1.getString("STOCK");
                    String MATERIAL=jo1.getString("MATERIAL");





                    id1.add(ID);
                    name.add(NAME);
                    brand.add(BRAND);
                    gender.add(GENDER);
                    discount.add(DISCOUNT);
                    desc.add(DESC);
                    sellprice.add(SELLPRICE);
                    markprice.add(MARKPRICE);
                    rating.add(RATING);
                    type.add(TYPE);
                    size.add(SIZE);
                    category.add(CATEGORY);
                    length.add(LENGTH);
                    image1.add(IMAGE1);
                    image2.add(IMAGE2);
                    image3.add(IMAGE3);
                    image4.add(IMAGE4);
                    image5.add(IMAGE5);
                    shop.add(SHOP);
                    color.add(COLOR);
                    stock.add(STOCK);
                    material.add(MATERIAL);


                }
                Log.d("abcde",id1.get(0));

                progressBar.clearAnimation();
                progressBar.setVisibility(View.INVISIBLE);


            } catch (JSONException e) {
                e.printStackTrace();
            }



            recyclerView.setAdapter(new RecyclerAdapter(getActivity(),id1,name,brand,gender,discount,desc,sellprice,markprice,
                    rating,type,size,category,length,image1,image2,image3,image4,image5,shop,color,stock,material));





        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {


            progressBar.clearAnimation();
            progressBar.setVisibility(View.INVISIBLE);

            Toast.makeText(getActivity(),"Please check your internet connection...",Toast.LENGTH_LONG).show();

        }
    });

    rq.add(sr);
    return v;
}
}
public class Fragment\u Women\u appeals扩展Fragment{
私人观点v;
私人回收站;
ArrayList id1、名称、品牌、性别、折扣、描述、售价、标价、评级、类型、大小、类别、长度、,
图像1,图像2,图像3,图像4,图像5,商店,颜色,库存,材料;
//5cbytcuv57x4
ProgressBar ProgressBar;
动画;
公共服装{
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
v=充气机。充气(R.布局。碎片\女性\服装\容器,假);
progressBar=v.findViewById(R.id.progress);
animation=AnimationUtils.loadAnimation(getActivity(),R.anim.rotate);
progressBar.startAnimation(动画);
id1=新的ArrayList();
name=新的ArrayList();
brand=新的ArrayList();
性别=新ArrayList();
折扣=新的ArrayList();
desc=新的ArrayList();
sellprice=新的ArrayList();
markprice=newarraylist();
评级=新的ArrayList();
类型=新的ArrayList();
大小=新的ArrayList();
类别=新的ArrayList();
长度=新的ArrayList();
image1=新的ArrayList();
image2=新的ArrayList();
image3=新的ArrayList();
image4=新的ArrayList();
image5=新的ArrayList();
shop=newarraylist();
颜色=新的ArrayList();
stock=newarraylist();
材质=新的ArrayList();
recyclerView=v.findViewById(R.id.recycler);
//setLayoutManager(新的LinearLayoutManager(getActivity());
GridLayoutManager GridLayoutManager=新的GridLayoutManager(getActivity(),2,RecyclerView.VERTICAL,false);
setLayoutManager(gridLayoutManager);//将LayoutManager设置为recyclerView
RequestQueue rq=Volley.newRequestQueue(getActivity());
字符串url=“--------------我的----API-----------------”;
StringRequest sr=new StringRequest(Request.Method.GET,url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jo=新的JSONObject(响应);
JSONArray ja=jo.getJSONArray(“结果”);

对于(int i=0;i最终我得到了解决方案…问题是我使用的是Volley库,它默认具有启用缓存的功能…因此每当我更新数据库时,都不会在UI上反映出内容,因为为特定API保存了缓存…所以每次我都必须清除应用缓存以查看dat的更改贬低

解决方案是在将StringRequest添加到RequestQueue之前,使用StringRequest类的函数禁用缓存功能

sr.setShouldCache(错误); rq.add(sr)


其中sr和rq是StringRequest和RequestQueue类的对象…

当我看到你所有的数组列表时,我停止了阅读。你为什么这么做?你需要制作一个项目模型,每个项目都有一个id、名称、品牌、性别等。然后你只需将这些对象添加到一个数组列表中。你这样做完全是徒劳的ng…..但是,为了反映新数据,您需要在RecycleService上执行notifyDataSetChanged(),然后通过刷新或其他方式再次调用DB,刷新/更新/删除/添加arraylist,然后执行notifyDataSetChange()模型类中会有什么?有很多具有setter和getter的构造函数的示例。这些都是模型类。然后,您将有一个列表,而不是List.List.add(例如,new ModelClass(…))