烂牌大师9527 2017-08-29 08:30 采纳率: 92.9%
浏览 972
已采纳

java.lang.NoClassDefFoundError问大神 ,点击省列表后直接程序崩溃

图片说明图片说明
package com.coolweather.app.activity;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.coolweather.app.R;
import com.coolweather.app.WeatherActivity;
import com.coolweather.app.db.CoolWeatherDB;
import com.coolweather.app.model.City;
import com.coolweather.app.model.County;
import com.coolweather.app.model.Province;
import com.coolweather.app.util.HttpCallbackListener;
import com.coolweather.app.util.HttpUtil;
import com.coolweather.app.util.Utility;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
public class ChooseAreaActivity extends Activity{
public static final int LEVEL_PROVINCE=0;
public static final int LEVEL_CITY=1;
public static final int LEVEL_COUNTY=2;

    @SuppressWarnings("deprecation")
    private ProgressDialog progressDialog;
    private TextView titleText;
    private ListView listView;
    private ArrayAdapter<String > adapter;
    private CoolWeatherDB coolWeatherDB;
    private List<String> dataList=new ArrayList<String>();
    private List<Province> provinceList;
    private List<City> cityList;
    private List<County> countyList;
    private Province selectedProvince;
    private City selectedCity;
    private int currentLevel;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.choose_area);
        titleText=(TextView)findViewById(R.id.title_text);
        listView=(ListView)findViewById(R.id.list_view);
        adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,dataList);
        listView.setAdapter(adapter);
        coolWeatherDB=CoolWeatherDB.getInstance(this);
        listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?>arg0,View view, int index,long arg3) {
                if(currentLevel==LEVEL_PROVINCE) {
                    selectedProvince=provinceList.get(index);
                    queryCity();
                }else if(currentLevel==LEVEL_CITY) {
                    selectedCity=cityList.get(index);
                    queryCounty();
                }else if(currentLevel==LEVEL_COUNTY) {
                    String weatherId=countyList.get(index).getWeatherId();
                    Intent intent=new Intent(ChooseAreaActivity.this,WeatherActivity.class);
                    intent.putExtra("weather_id",weatherId);
                    startActivity(intent);
                    finish();

                }
            }               
        });
        queryProvince();
    }
    private void queryProvince() {
        titleText.setText("中国");
        provinceList=coolWeatherDB.loadProvinces();
        if(provinceList.size()>0) {
            dataList.clear();
            for(Province province:provinceList) {
                dataList.add(province.getProvinceName());

            }
            adapter.notifyDataSetChanged();
            listView.setSelection(0);

            currentLevel=LEVEL_PROVINCE;

        }else {
            String address="http://guolin.tech/api/china/";
            queryFromServer(address,"province");
        }
    }


        private void queryCity() {
            titleText.setText(selectedProvince.getProvinceName());
            cityList=coolWeatherDB.loadCities(selectedProvince.getId());
            if(cityList.size()>0) {
                dataList.clear();
                for(City city:cityList) {
                    dataList.add(city.getCityName());

                }
                adapter.notifyDataSetChanged();
                listView.setSelection(0);

                currentLevel=LEVEL_CITY;
            }else {
                int provinceCode=selectedProvince.getProvinceCode();
                String address="http://guolin.tech/api/china/"+provinceCode;
                queryFromServer(address,"city");
            }
        }
        private void queryCounty() {
            titleText.setText(selectedCity.getCityName());
            countyList=coolWeatherDB.loadCounties(selectedCity.getId());
            if(countyList.size()>0) {
                dataList.clear();
                for(County county:countyList) {
                    dataList.add(county.getCountyName());
                }
                adapter.notifyDataSetChanged();
                listView.setSelection(0);

                currentLevel=LEVEL_COUNTY;

            }else {
                int provinceCode=selectedProvince.getProvinceCode();
                int cityCode=selectedCity.getCityCode();
                String address="http://guolin.tech/api/china/"+provinceCode+"/"+cityCode;
                queryFromServer(address,"county");
            }
        }


    private void queryFromServer(String address,final String type) {

        showProgressDialog();
    HttpUtil.sendOkHttpRequest(address, new Callback() {

            @Override
            public void onResponse(Call call,Response response) throws IOException{
                String responseText=response.body().string();
                boolean result=false;
                if("province".equals(type)) {
                    result=Utility.handleProvinceResponse(responseText);

                }else if("city".equals(type)) {
                    result=Utility.handleCityResponse(responseText,selectedProvince.getId());
                }else if("county".equals(type)) {
                    result=Utility.handleCountyResponse(responseText, selectedCity.getId());
                }
                if(result) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            closeProgressDialog();
                            if("province".equals(type)) {
                                queryProvince();
                            }else if("city".equals(type)) {
                                queryCity();
                            }else if("county".equals(type)) {
                                queryCounty();
                            }
                        }
                    });
                }
            }
            @Override
            public void onFailure(Call call,IOException e) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        closeProgressDialog();
                        Toast.makeText(ChooseAreaActivity.this,"加载失败",Toast.LENGTH_SHORT).show();
                    }
                });
            }
        });
    }

    private void showProgressDialog() {
        if(progressDialog==null) {
            progressDialog=new ProgressDialog(this);
            progressDialog.setMessage("正在加载");
            progressDialog.setCanceledOnTouchOutside(false);

        }
        progressDialog.show();
    }
    private void closeProgressDialog() {
    if(progressDialog!=null) {
        progressDialog.dismiss();
    }
    }
    @Override
    public void onBackPressed() {
        if(currentLevel==LEVEL_COUNTY) {
            queryCity();
        }else if(currentLevel==LEVEL_CITY) {
            queryProvince();
        }else {
            finish();
        }
    }

}

  • 写回答

8条回答 默认 最新

  • 烂牌大师9527 2019-05-22 09:59
    关注

    已经自己解决了,太久没上了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器