gpt4 book ai didi

java - android从数据库获取后返回null无法启动 Activity ComponentInfo : java. lang.NullPointerException:存储== null

转载 作者:行者123 更新时间:2023-12-02 03:09:09 25 4
gpt4 key购买 nike

我正在尝试动态地将项目添加到 ListView 中。但是,我遇到了运行时异常。请帮忙。全局变量“values”有问题吗?我尝试通过打印日志进行调试,并且能够看到存储在变量中的值。当它返回结果时就会出现问题(我使用它是因为我从数据库获取信息)

它从数据库中获取得很好,但是当它在 try block 中返回结果时int 跳转到函数末尾的另一个 return 语句,然后崩溃

代码

public class choose_buffet_items extends AppCompatActivity {
String []categouries;
ArrayAdapter adapter;
private static int SPLASH_TIME_OUT=2000;
AlertDialog alertDialog;
private boolean loggedIn = false;
String type;
String result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose_buffet_items);
new JSONParse().execute();
adapter = new ArrayAdapter<String>(this,
R.layout.buffet_list_view, categouries);

ListView listView = (ListView) findViewById(R.id.listView_buffetitem);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String s =(String)adapter.getItem(i);
if(s.equals("Drinks"))
{
Intent numbersIntent = new Intent(choose_buffet_items.this, buffet_drinks.class);
startActivity(numbersIntent);
}
else if(s.equals("Cakes"))
{
Intent numbersIntent = new Intent(choose_buffet_items.this, buffet_cake.class);
startActivity(numbersIntent);
}
else if(s.equals("Appetizers"))
{
Intent numbersIntent = new Intent(choose_buffet_items.this,buffet_appetizers.class);
startActivity(numbersIntent);
}
else {Intent numbersIntent = new Intent(choose_buffet_items.this, buffet_lunch.class);
startActivity(numbersIntent);}

}
});


listView.setAdapter(adapter);
}
private class JSONParse extends AsyncTask<String, String, String> {
private ProgressDialog pDialog;

@Override
protected void onPreExecute() {
super.onPreExecute();
alertDialog=new AlertDialog.Builder(choose_buffet_items.this).create();
alertDialog.setTitle("Upadting Data");
pDialog = new ProgressDialog(choose_buffet_items.this);
pDialog.setMessage("Getting Data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();


}


@Override
protected String doInBackground(String... args) {



String login_URL = "http://2f179dfb.ngrok.io/getcat.php";
try {

//Fetching the boolean value form sharedpreferences


URL url = new URL(login_URL);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);

InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
result = "";
String line = "";
while ((line = bufferedReader.readLine()) != null) {
result += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
Log.e("RESULT", result);
JSONObject jsonObject = new JSONObject(result);

JSONArray result1 = jsonObject.getJSONArray("result");
categouries=new String[result1.length()];
for (int i = 0; i < result1.length(); i++) {
JSONObject c = result1.getJSONObject(i);
String category = c.getString("buffCategory");
categouries[i]=category;
}

return result;


}
catch (MalformedURLException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return result;
}




@Override
protected void onPostExecute(String r) {
adapter.notifyDataSetChanged();
pDialog.dismiss();



}
}
}
日志猫

12-25 02:45:27.532 7109-7109/com.rematchka.weddinghall E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.rematchka.weddinghall, PID: 7109
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rematchka.weddinghall/com.rematchka.weddinghall.choose_buffet_items}: java.lang.NullPointerException: storage == null
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: storage == null
at java.util.Arrays$ArrayList.<init>(Arrays.java:38)
at java.util.Arrays.asList(Arrays.java:155)
at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:137)
at com.rematchka.weddinghall.choose_buffet_items.onCreate(choose_buffet_items.java:49)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
12-25 02:45:27.962 7109-7473/com.rematchka.weddinghall E/RESULT: {"result":[{"buffCategory":"Drinks"},{"buffCategory":"Cakes"},{"buffCategory":"Appetizers"},{"buffCategory":"Lunch"}]}

最佳答案

当传递给 ArrayAdapter(Context, int, T[]) 的数组参数为 null 时,会引发此特定异常(“storage == null”)。

在 oncreate 方法中的这一行:

   adapter = new ArrayAdapter<String>(this,
R.layout.buffet_list_view, categouries);

Categouries 为空,您需要初始化它,然后才执行该行。

关于java - android从数据库获取后返回null无法启动 Activity ComponentInfo : java. lang.NullPointerException:存储== null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41317333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com