Java 通过截取加载JSON内容实现NullPointerException
我试图通过截取将URL中的内容加载到片段中的列表视图中,但每次我都会收到NullPointerException,我真的不知道我做错了什么。我希望你能帮助我并指出我的错误:Java 通过截取加载JSON内容实现NullPointerException,java,android,json,fragment,android-volley,Java,Android,Json,Fragment,Android Volley,我试图通过截取将URL中的内容加载到片段中的列表视图中,但每次我都会收到NullPointerException,我真的不知道我做错了什么。我希望你能帮助我并指出我的错误: public class Neuigkeiten extends Fragment { // Neuigkeiten URL public static final String neuigkeitenURL = //my URL // Log tag private static final String TAG =
public class Neuigkeiten extends Fragment
{
// Neuigkeiten URL
public static final String neuigkeitenURL = //my URL
// Log tag
private static final String TAG = Neuigkeiten.class.getSimpleName();
private ProgressDialog progress;
private List< NeuigkeitenBean > neuigkeitenListe = new ArrayList< NeuigkeitenBean >();
private ListView listView;
private CustomListAdapter adapter;
@Override
public View onCreateView( LayoutInflater inflater , ViewGroup container ,
Bundle savedInstanceState )
{
View neuigkeitenView = inflater.inflate(R.layout.listmainview ,
container , false);
progress = new ProgressDialog(getActivity());
listView = (ListView) neuigkeitenView.findViewById(R.id.list);
adapter = new CustomListAdapter(this , neuigkeitenListe);
listView.setAdapter(adapter);
// hole die SharedPreferences
final SharedPreferences sharedPf = PreferenceManager
.getDefaultSharedPreferences(getActivity().getBaseContext());
// hole die Datenbank, die nachher zum Server geschickt werden muss
String datenbank = sharedPf.getString("Datenbank" , "");
//POST Parameter
JSONObject parameter = new JSONObject();
try
{
parameter.put("datenbank" , datenbank);
}
catch (JSONException je)
{
//wenn das hier auf die Fresse fliegt breche alles ab;
je.printStackTrace();
}
JsonObjectRequest jsonAntwort = new JsonObjectRequest(Method.POST ,
neuigkeitenURL , parameter , new Response.Listener< JSONObject >()
{
@Override
public void onResponse( JSONObject response )
{
Log.d(TAG , response.toString());
progress.hide();
// Parsing json
for (int i = 0; i < response.length(); i++)
{
try
{
NeuigkeitenBean neuigkeitenBean = new NeuigkeitenBean();
neuigkeitenBean.setUeberschrift(response.getString("head"));
neuigkeitenBean.setText((response.getString("content")));
neuigkeitenBean.setBild(response.getString("image"));
// Bean zur Liste hinzufügen
neuigkeitenListe.add(neuigkeitenBean);
}
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 )
{
error.printStackTrace();
VolleyLog.d(TAG , "Error: " + error.getMessage());
progress.dismiss();
}
});
NeuigkeitenHelper.getInstance().addToRequestQueue(jsonAntwort);
return neuigkeitenView;
}
}
变量jsonAntwort为空,但我确信参数是正确的……第114行:
NeuigkeitenHelper.getInstance().addToRequestQueue(jsonAntwort);
如果NeuigkeitenHelper扩展了应用程序,请在清单中检查一次。然后您应该在清单中的应用程序标记中使用该类 示例:
<application
android:name="package.YourApplicationClass" <--------
android:allowBackup="true"
android:debuggable="true"
android:icon="@drawable/ic_launcher"
android:label="xyz"
android:screenOrientation="landscape"
android:theme="@style/AppTheme">
附加堆栈跟踪并显示错误发生的位置。neuigkeitenheloper.getInstance()
为空。您应该检查这个变量。你能解释一下这个变量到底在做什么吗?为什么?为什么neuigkeitenheloper
应该扩展应用程序?这与问题有什么关系?NeuigkeitenHelper不是我的入门课程。我用它来实例化一些对象,比如RequestQUE。我发现了我的问题。该实例为空,但我不知道为什么…我在我的Neuigkeiten类中创建了一个新实例,它可以工作!一旦发布了NeuigkeitenHelper的源代码。然后我会确认你为什么要在舱单中使用。
<application
android:name="package.YourApplicationClass" <--------
android:allowBackup="true"
android:debuggable="true"
android:icon="@drawable/ic_launcher"
android:label="xyz"
android:screenOrientation="landscape"
android:theme="@style/AppTheme">