2014-11-22 85 views
0

u能解释在哪里我做了错误的空指针异常..获得当移动交换从纵向到横向和反转

我的片段类包含的异步任务

class FormDetails extends AsyncTask<String, String, FormFull> { 

NetworkConnection nc; 
NetworkConnectivity ncty; 
FormFull fList=null; 
ProgressDialog pd; 

@Override 
protected void onPreExecute() { 
// TODO Auto-generated method stub 
pd=new ProgressDialog(getActivity()); 
pd.show(); 
super.onPreExecute(); 
} 

@Override 
protected void onProgressUpdate(String... values) { 
// TODO Auto-generated method stub 
pd.setMessage(values[0]); 
super.onProgressUpdate(values); 
} 

@Override 
protected FormFull doInBackground(String... params) { 
nc=new NetworkConnection(); 
ncty=new NetworkConnectivity(getActivity()); 
if(ncty.haveNetworkConnection()){ 
publishProgress("Please Wait.."); 
fList=nc.getFormDetails(params[0], params[1], params[2]); 
}else{ 
Toast.makeText(getActivity(), "No Network Found", Toast.LENGTH_LONG).show(); 
} 
return fList; 
} 
@Override 
protected void onPostExecute(FormFull result) { 
// TODO Auto-generated method stub 
pd.dismiss(); 
if(result!=null){ 
afaqd.clear(); 
afard.clear(); 
if(result.getFqndata()!=null){ 
afaqd.addAll(result.getFqndata()); 
} 
if(result.getFresdata()!=null){ 
afard.addAll(result.getFresdata()); 
} 
fad.notifyDataSetChanged(); 
} 
super.onPostExecute(result); 
} 
} 


@Override 
public void onPause() { 
super.onPause(); 
if(pd != null){ 
pd.dismiss(); 
} 
} 
} 

我得到同样的问题进步的对话,但是当我加入的onPause()方法,它解决了但是如何对其余像烤面包和网络连接类

和我的网络连接类

public class NetworkConnectivity { 

Context ct; 
ConnectivityManager cm; 
NetworkInfo networkInfo; 
public NetworkConnectivity(Context ct){ 
this.ct=ct; 
} 

public boolean haveNetworkConnection() { 
boolean haveConnectedWifi = false; 
boolean haveConnectedMobile = false; 

    cm = (ConnectivityManager) ct.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 
for (NetworkInfo ni : netInfo) { 
if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
if (ni.isConnected()) 
haveConnectedWifi = true; 
if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
if (ni.isConnected()) 
haveConnectedMobile = true; 
} 
return haveConnectedWifi || haveConnectedMobile; 
} 

public String networkName(){ 
cm = (ConnectivityManager) ct.getSystemService(Context.CONNECTIVITY_SERVICE); 
networkInfo = cm.getActiveNetworkInfo(); 

if (networkInfo != null && networkInfo.isConnected()) { 
if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI) 
return "wifi"; 
else 
return "mobile"; 
}else 
return "not"; 
} 

} 

获得空指针异常两个面包和也的网络连接类..

在此先感谢

+2

解决您的actiivty像纵向或横向清单文件 – 2014-11-22 12:18:58

+0

否则,你也可以使用配置变化的方法来处理它。 – Riser 2014-11-22 12:20:20

+0

你可以解释它如何配置 – 2014-11-22 12:21:03

回答

0

在您的清单将其添加到活动:

android:configChanges="orientation|screenSize" 
0

测试是否getActivity是空值。

@Override 
protected FormFull doInBackground(String... params) { 
    nc=new NetworkConnection(); 
    if (getActivity()!=null) { 
    ncty=new NetworkConnectivity(getActivity()); 
    if(ncty.haveNetworkConnection()){ 
    publishProgress("Please Wait.."); 
    fList=nc.getFormDetails(params[0], params[1], params[2]); 
    }else{ 
    Toast.makeText(getActivity(), "No Network Found", Toast.LENGTH_LONG).show(); 
    } 
          } 
    return fList; 
} 
相关问题