Android 如何更改url字符串http请求线程运行时显示错误

Android 如何更改url字符串http请求线程运行时显示错误,android,Android,我无法在oncreateview中分配url字符串,因为它是静态的final,如果我将其更改为static并将其声明为oncreateview,它将分配,并且在编译时不会出现错误,但运行时可能是因为http请求在其他线程上运行,它无法获取在oncreateview中分配的url。我想要 在获取url字符串时,可以在url字符串中无任何空异常的情况下运行http请求 我希望下面的url从以前的活动被更改,因为它是最终的静态我无法更改是不是有其他最好的解决方案? private静态最终字符串url=

我无法在oncreateview中分配url字符串,因为它是静态的final,如果我将其更改为static并将其声明为oncreateview,它将分配,并且在编译时不会出现错误,但运行时可能是因为http请求在其他线程上运行,它无法获取在oncreateview中分配的url。我想要 在获取url字符串时,可以在url字符串中无任何空异常的情况下运行http请求

我希望下面的url从以前的活动被更改,因为它是最终的静态我无法更改是不是有其他最好的解决方案?
private静态最终字符串url=”http://111.111.11.111/celebrations/cab.php";
私人对话;
private List movieList=new ArrayList();
私有列表视图列表视图;
专用自定义列表适配器;
私有int-datasql8=0;
公共五个片段(){
//必需的空公共构造函数
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
FragmentActivity faActivity=(FragmentActivity)super.getActivity();
//将LinearLayout替换为要加载布局的根元素的类型
RelativeLayout rlLayout=(RelativeLayout)充气器充气(R.layout.fragment_-eight,容器,false);
//为该碎片膨胀布局
listView=(listView)rlLayout.findviewbyd(R.id.list);
adapter=新的CustomListAdapter(super.getActivity(),movieList);
setAdapter(适配器);
最终SharedReferences首选项=this.getActivity().getSharedReferences(“pref”,Context.MODE\u PRIVATE);
final SharedPreferences.Editor edt=preferences.edit();
pDialog=newprogressdialog(super.getActivity());
//在发出http请求之前显示进度对话框
pDialog.setMessage(“庆祝…”);
pDialog.show();
//
下面是JsonArrayRequest(url,new Response.Listener()中的代码

URL应该是静态和字符串

//创建截击请求对象
JsonArrayRequest movieReq=新的JsonArrayRequest(url,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
Log.d(TAG,response.toString());
hidePDialog();
//解析json
对于(int i=0;ipackage com.celebrations.kishan.fragments;


public class FiveFragment extends Fragment {
    private static final String TAG = "Five activity"; 
    private static final String url = "http://111.111.11.111/celebrations/cab.php";
    private ProgressDialog pDialog;
    private List<Movie> movieList = new ArrayList<Movie>();
    private ListView listView;
    private CustomListAdapter adapter;
    private int datasql8=0;


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

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        FragmentActivity faActivity = (FragmentActivity) super.getActivity();
        // Replace LinearLayout by the type of the root element of the layout you're trying to load
        RelativeLayout rlLayout = (RelativeLayout) inflater.inflate(R.layout.fragment_eight, container, false);
        // Inflate the layout for this fragment
        listView = (ListView) rlLayout.findViewById(R.id.list);
        adapter = new CustomListAdapter(super.getActivity(), movieList);
        listView.setAdapter(adapter);
        final SharedPreferences preferences = this.getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);
        final SharedPreferences.Editor edt = preferences.edit();



        pDialog = new ProgressDialog(super.getActivity());
        // Showing progress dialog before making http request
        pDialog.setMessage("Celebrating...");
        pDialog.show();

//
        // Creating volley request obj
        JsonArrayRequest movieReq = new JsonArrayRequest(url,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d(TAG, response.toString());
                        hidePDialog();

                        // Parsing json
                        for (int i = 0; i < response.length(); i++) {
                            try {

                                JSONObject obj = response.getJSONObject(i);
                                Movie movie = new Movie();
                                movie.setTitle(obj.getString("title"));
                                movie.setThumbnailUrl(obj.getString("image"));
                                movie.setRating(((Number) obj.get("rating"))
                                        .doubleValue());
                                movie.setYear(obj.getInt("releaseYear"));

                                // Genre is json array
                                //JSONArray genreArry = obj.getJSONArray("genre");
                                ArrayList<String> genre = new ArrayList<String>();
                                for (int j = 0; j < 1; j++) {
                                    genre.add("Certified");
                                }
                                movie.setGenre(genre);
                                if((preferences.getString("dataf8", "empty")).equals("empty"))
                                {
                                    if(isOnline()==true)
                                    { Toast.makeText(getActivity(),"null online",Toast.LENGTH_LONG).show();
                                        edt.putString("dataf8","stored");
                                        edt.commit();

                                        try {
                                            MainActivity.dbs.execSQL("insert into tableeight values('" + obj.getString("title") + "','" + obj.getString("image") + "'," + ((Number) obj.get("rating"))
                                                    .doubleValue() + "," + obj.getInt("releaseYear") + ")");
                                        }catch(Exception ae)
                                        {
                                            Toast.makeText(getActivity(),ae.getMessage().toString(),Toast.LENGTH_LONG).show();
                                        }
                                    }
                                    else
                                    {
                                        Toast.makeText(getActivity(),"Connect To Internet",Toast.LENGTH_SHORT).show();

                                    }
                                }
                                else
                                {
                                    if(isOnline()==true)
                                    {// Toast.makeText(getActivity(),"full fresh insert online"+i,Toast.LENGTH_SHORT).show();
                                        try {

                                            MainActivity.dbs.execSQL("insert into tableeight values('Work online','" + obj.getString("image") + "'," + ((Number) obj.get("rating"))
                                                    .doubleValue() + "," + obj.getInt("releaseYear") + ")");
                                        }catch(Exception ae)
                                        {
                                            Toast.makeText(getActivity(),ae.getMessage().toString(),Toast.LENGTH_LONG).show();
                                        }
                                    }else
                                    {  //Toast.makeText(getActivity(),"old put offline",Toast.LENGTH_LONG).show();
                                        try
                                        {
                                            Cursor point=MainActivity.dbs.rawQuery("select * from tableeight",null);
                                            point.moveToFirst();
                                            do {
                                                movie.setTitle(point.getString(0));
                                                movie.setThumbnailUrl(point.getBlob(1).toString());

                                                movie.setRating(((Number) point.getDouble(2))
                                                        .doubleValue());
                                                movie.setYear(point.getInt(3));

                                                for (int j = 0; j < 1; j++) {
                                                    genre.add("Certified");
                                                }
                                                movie.setGenre(genre);

                                            }while(point.moveToNext());
                                        }
                                        catch (Exception ea)
                                        {
                                            Toast.makeText(getActivity(),ea.getMessage().toString(),Toast.LENGTH_LONG).show();
                                        }
                                    }


                                }

                                // adding movie to movies array
                                movieList.add(movie);
                                listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                                    @Override

                                    public void onItemClick(AdapterView parent, View view, int position, long id) {



                                        Movie o = (Movie) parent.getItemAtPosition(position);

                                        Toast.makeText(getActivity(), o.getTitle().toString(), Toast.LENGTH_SHORT).show();
                                        Intent intent = new Intent(getActivity(),Details.class);
                                        intent.putExtra("Key", o.getTitle().toString());
                                        startActivity(intent);
                                    }

                                });

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

                        }

                        // notifying list adapter about data changes
                        // so that it renders the list view with updated data
                        adapter.notifyDataSetChanged();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                hidePDialog();

            }
        });

        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(movieReq);

        return rlLayout ;
    }public boolean isOnline() {
        ConnectivityManager cm =
                (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        return netInfo != null && netInfo.isConnectedOrConnecting();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        hidePDialog();
    }

    private void hidePDialog() {
        if (pDialog != null) {
            pDialog.dismiss();
            pDialog = null;
        }
    }
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

        super.onCreateOptionsMenu(menu, inflater);
    }

}
 Intent intent = new Intent(getActivity(),Details.class);
 intent.putExtra("Key", o.getTitle().toString());
 intent.putExtra("URL", url);
 startActivity(intent);
public class MyUrls{
   public static String url1 = "http://www.example.com/api/";
   // some more urls, if any.
}