Здравствуйте, я продолжаю получать NullPointerException на item.setProduct(trans.getProduct().getName());
Можете ли вы рассказать, почему и как? Я не вижу причин, почему это будет null, поскольку я установил свой адаптер в методе onPostExecute. Благодаря!nullPointerException on AsyncTask doInBackground response
private class TransactionTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
BackendService service = BackendAPI.serviceApi();
TransactionObject transactionList;
Log.e("AsyncTask", "I'm called");
try {
transactionList = service.listTransactions(15);
if (transactionList != null) {
Log.e(TAG, transactionList.toString());
loadListViewData(transactionList);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public void loadListViewData(TransactionObject transObj) {
item = new SalesItem();
Iterator<Transaction> transactionList = transObj.getTransactions().iterator();
Transaction trans = null;
while (transactionList.hasNext()) {
trans = transactionList.next();
item.setProduct(trans.getProduct().getName());
item.setCost(trans.getCost());
item.setName(trans.getUser().getName());
item.setDate(trans.getCreated_at());
item.setId(trans.getId());
transaction.add(item);
}
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
adapter = new SalesListAdapter(getActivity(), transaction);
listview.setAdapter(adapter);
}
}
вот мой журнал
`03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ java.lang.NullPointerException
03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ at net.payswitch.switchmobile.fragments.SalesDataFragment$TransactionTask.loadListViewData(SalesDataFragment.java:188)
03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ at net.payswitch.switchmobile.fragments.SalesDataFragment$TransactionTask.doInBackground(SalesDataFragment.java:166)
03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ at net.payswitch.switchmobile.fragments.SalesDataFragment$TransactionTask.doInBackground(SalesDataFragment.java:152)
03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:287)
03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:234)
03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-03 07:40:52.604 2011-2033/net.payswitch.switchmobile W/System.err﹕ at java.lang.Thread.run(Thread.java:856)`
У вас нет 'Продукта' в вашем' trans', скорее всего. Вы проверили свой объект 'trans'? –
Возможно, 'trans.getProduct();' или 'trans.getProduct(). GetName()' is null – Jens
Возможный дубликат [Что такое Null Pointer Exception и как его исправить?] (Http: // stackoverflow .com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) – Jens