Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 尝试从不同类调用函数时应用程序崩溃_Java_Android - Fatal编程技术网

Java 尝试从不同类调用函数时应用程序崩溃

Java 尝试从不同类调用函数时应用程序崩溃,java,android,Java,Android,我试图在对微调器更改进行排序后调用函数getData(),但我不断遇到错误和应用程序崩溃 这是my homepageActivity中的函数: private JsonArrayRequest getDataFromServer(int requestCount, int SortType) { //Initializing ProgressBar final ProgressBar progressBar = (ProgressBar) findViewById

我试图在对微调器更改进行排序后调用函数getData(),但我不断遇到错误和应用程序崩溃

这是my homepageActivity中的函数:

private JsonArrayRequest getDataFromServer(int requestCount, int SortType) {
        //Initializing ProgressBar
        final ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar1);
        String FINAL_URL = "";
        //Displaying Progressbar
        progressBar.setVisibility(View.VISIBLE);
        setProgressBarIndeterminateVisibility(true);

        //JsonArrayRequest of volley
        if(SortType == 0){
            FINAL_URL = Config.DATA_URL + String.valueOf(requestCount);
        }else if (SortType == 1){
            FINAL_URL = Config.DATA_URL + String.valueOf(requestCount);
        }else{
            Log.d("ERROR:","sort is more than 1");
        }
        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(FINAL_URL,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        //Calling method parseData to parse the json response
                        parseData(response);
                        //Hiding the progressbar
                        progressBar.setVisibility(View.GONE);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        progressBar.setVisibility(View.GONE);
                        //If an error occurs that means end of the list has reached
                        Toast.makeText(homepageActivity.this, "No More Items Available", Toast.LENGTH_SHORT).show();
                    }
                });

        //Returning the request
        return jsonArrayRequest;
    }

    //This method will get data from the web api
    public void getData(int sort) {
        //Adding the method to the queue by calling the method getDataFromServer
        requestQueue.add(getDataFromServer(requestCount, sort));
        //Incrementing the request counter
        requestCount++;
    }

    //This method will parse json data
    private void parseData(JSONArray array) throws RuntimeException {
        for (int i = 0; i < array.length(); i++) {
            //Creating the superhero object
            SuperHero superHero = new SuperHero();
            JSONObject json = null;
            try {
                //Getting json
                json = array.getJSONObject(i);
                //Adding data to the superhero object
                superHero.setImageUrl(json.getString(Config.TAG_IMAGE_URL));
                superHero.setName(json.getString(Config.TAG_NAME));
                superHero.setPublisher(json.getString(Config.TAG_PUBLISHER));
            } catch (JSONException e) {
                e.printStackTrace();

            }
            //Adding the superhero object to the list
            listSuperHeroes.add(superHero);
        }
        //Notifying the adapter that data has been added or changed
        Log.d("ADebugTag", "Value: " + listSuperHeroes);

        adapter.notifyDataSetChanged();
    }
private JsonArrayRequest getDataFromServer(int-requestCount,int-SortType){
//初始化进度条
最终ProgressBar ProgressBar=(ProgressBar)findViewById(R.id.progressBar1);
字符串FINAL_URL=“”;
//显示进度条
progressBar.setVisibility(View.VISIBLE);
SetProgressBarInDeterminateVibility(真);
//JsonArrayRequest截击
如果(SortType==0){
FINAL_URL=Config.DATA_URL+String.valueOf(requestCount);
}else if(SortType==1){
FINAL_URL=Config.DATA_URL+String.valueOf(requestCount);
}否则{
Log.d(“错误:,”排序大于1”);
}
JsonArrayRequest JsonArrayRequest=新的JsonArrayRequest(最终URL,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
//调用parseData方法来解析json响应
解析数据(响应);
//隐藏进度条
progressBar.setVisibility(View.GONE);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
progressBar.setVisibility(View.GONE);
//若发生错误,则表示已到达列表末尾
Toast.makeText(homepageActivity.this,“没有更多可用项”,Toast.LENGTH_SHORT.show();
}
});
//返回请求
返回jsonArrayRequest;
}
//此方法将从web api获取数据
公共void getData(int排序){
//通过调用getDataFromServer方法将该方法添加到队列
add(getDataFromServer(requestCount,sort));
//递增请求计数器
requestCount++;
}
//此方法将解析json数据
私有void parseData(JSONArray数组)引发RuntimeException{
对于(int i=0;i
这就是我的卡适配器中的内容:

HPC = new homepageActivity();
                Boolean checkFirst = true;
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long l) {
                    if(!checkFirst){
                        Log.d("ERROR:","hello world is clicked" + position);
                        homepageActivity.sortDataOn = false;
                        homepageActivity.listSuperHeroes.clear();
                        homepageActivity.adapter.notifyDataSetChanged();
                        homepageActivity.sortType = position;
                        HPC.getData(homepageActivity.sortType);
                    }

                    checkFirst = false;
                }

HPC=新主页活动();
布尔checkFirst=true;
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长l){
如果(!checkFirst){
Log.d(“错误:”,单击“hello world”+位置);
homepageActivity.SortData=false;
homepageActivity.ListSuperheros.clear();
homepageActivity.adapter.notifyDataSetChanged();
homepageActivity.sortType=位置;
getData(homepageActivity.sortType);
}
checkFirst=false;
}
该应用程序工作正常,直到我更改spinner,它尝试调用getData函数,然后崩溃,并出现以下错误:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.yemencar.yemencar, PID: 4714
                  java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
                      at android.support.v7.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:247)
                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:182)
                      at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)
                      at android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:191)
                      at com.yemencar.yemencar.homepageActivity.getDataFromServer(homepageActivity.java:91)
                      at com.yemencar.yemencar.homepageActivity.getData(homepageActivity.java:131)
                      at com.yemencar.yemencar.CardAdapter$VHHeader$1.onItemSelected(CardAdapter.java:162)
                      at android.widget.AdapterView.fireOnSelected(AdapterView.java:944)
                      at android.widget.AdapterView.dispatchOnItemSelected(AdapterView.java:933)
                      at android.widget.AdapterView.-wrap1(Unknown Source:0)
                      at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:898)
                      at android.os.Handler.handleCallback(Handler.java:789)
                      at android.os.Handler.dispatchMessage(Handler.java:98)
                      at android.os.Looper.loop(Looper.java:164)
                      at android.app.ActivityThread.main(ActivityThread.java:6541)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
E/AndroidRuntime:致命异常:主
进程:com.yemencar.yemencar,PID:4714
java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“android.view.Window$Callback android.view.Window.getCallback()”
在android.support.v7.app.AppCompateDelegateImpl。(appCompateDelegateImpl.java:247)
在android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:182)上
位于android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)
位于android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:191)
位于com.yemencar.yemencar.homepageActivity.getDataFromServer(homepageActivity.java:91)
在com.yemencar.yemencar.homepageActivity.getData(homepageActivity.java:131)上
在com.yemencar.yemencar.CardAdapter$VHHeader$1.onItemSelected上(CardAdapter.java:162)
在android.widget.AdapterView.fireOnSelected上(AdapterView.java:944)
在android.widget.AdapterView.dispatchOnItemSelected中(AdapterView.java:933)
位于android.widget.AdapterView.-wrap1(未知来源:0)
在android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:898)上
位于android.os.Handler.handleCallback(Handler.java:789)
位于android.os.Handler.dispatchMessage(Handler.java:98)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6541)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.Zy
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long l) {
    homepageActivity activity = (homepageActivity) parent.getContext();
    // now you can call activity.sortDataOn etc
}