java.lang.NullPointerException:storage==null
当我想在列表视图中打开已勾选的项目时。我收到错误消息: java.lang.NullPointerException:storage==null 我使用截取库进行http请求。这里我发出请求,并使用另一个类来转换数组中的jsonjava.lang.NullPointerException:storage==null,java,android,json,nullpointerexception,android-volley,Java,Android,Json,Nullpointerexception,Android Volley,当我想在列表视图中打开已勾选的项目时。我收到错误消息: java.lang.NullPointerException:storage==null 我使用截取库进行http请求。这里我发出请求,并使用另一个类来转换数组中的json public class Tips extends AppCompatActivity { private SQLiteDatabase db; public static final String INFORMATION_TIPS = "http://www.myd
public class Tips extends AppCompatActivity {
private SQLiteDatabase db;
public static final String INFORMATION_TIPS = "http://www.mydomainname/login/api.php?action=getTips";
public final String TIP = "tip";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tips);
setTitle("Tips");
populateListView();
ListView tipsView = (ListView) findViewById(R.id.tipsView);
tipsView.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String tip = String.valueOf(parent.getItemAtPosition(position));
//userData data = new userData(db);
try {
tipsViewPost(tip);
Intent singleTipIntent = new Intent(Tips.this,singleTip.class);
startActivity(singleTipIntent);
}
catch (Exception ex)
{
Toast.makeText(Tips.this, ex.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
}
}
);
}
private void populateListView()
{
try {
//lijst van items
String[] tips = {"Hoofd", "knie"};
//adapter maken
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, tips);
//list koppelen aan adapter
ListView list = (ListView) findViewById(R.id.tipsView);
list.setAdapter(adapter);
}
catch(Exception ex)
{
Toast.makeText(Tips.this, ex.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
}
public void tipsViewPost(String tipView) {
final String tip = tipView;
try {
StringRequest stringRequest = new StringRequest(Request.Method.POST, INFORMATION_TIPS,
new Response.Listener<String>() {
@Override
public boolean onResponse(String response) throws JSONException {
setTipsJson(response,tip);
return true;
}
},
new Response.ErrorListener() {
@Override
public boolean onErrorResponse(VolleyError error) {
try {
Toast.makeText(Tips.this, error.getMessage(), Toast.LENGTH_LONG).show();
return false;
}
catch(Exception ex)
{
Toast.makeText(Tips.this, ex.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
return false;
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put(TIP, tip);
return map;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
} catch (Exception ex) {
Toast.makeText(Tips.this, ex.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
}
protected void setTipsJson(String json,String tip)
{
try {
parseJSON pj = new parseJSON(json);
pj.parseTips(tip);
}
catch(Exception ex)
{
Toast.makeText(Tips.this, ex.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
}
//line20 ArrayAdapter adapter=新的ArrayAdapter(//line20(这是android.R.layout.simple\u list\u item\u 1,parseJSON.injunts)
您能否在stacktrace中共享
singleTip
类的代码(位于com.example.mydomain.fysio.singleTip.populateListView(singleTip.java:20)
),并指向一些注释行20@RC我已经完成了!请查看我的编辑。显然我的数组是空的,但为什么?请移动Intent singleTipIntent=new Intent(Tips.this,singleTip.class);startActivity(singleTipIntent);
intoonResponse
insidepublic-void-tipsViewPost(String-tipView)
你真是太棒了!现在它可以工作了!谢谢你,但这又有什么关系呢?
public static String[] injuries;
private JSONArray tipsJson = null;
protected void parseTips(String injurie) {
JSONObject jsonObject = null;
String value = "naam";
try {
jsonObject = new JSONObject(json);
tipsJson = jsonObject.getJSONArray(injurie);
injuries = new String[tipsJson.length()];
for (int i = 0; i < tipsJson.length(); i++) {
JSONObject jo = tipsJson.getJSONObject(i);
injuries[i] = jo.getString(value);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
package com.example.mydomain.fysio;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class singleTip extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_tip);
populateListView();
}
public void populateListView()
{
//adapter maken
//list koppelen aan adapter
ListView list = (ListView) findViewById(R.id.singleTip);
list.setAdapter(adapter);
}
}