Android ArrayAdapter正在获取空上下文
NullPointerException android.widget.ArrayAdapter.init(ArrayAdapter.java)只是将Arraylist值添加到customAdapter类中,并将该值设置到listview中请参见下面的代码帮助 我的logcat错误:Android ArrayAdapter正在获取空上下文,android,json,listview,android-custom-view,Android,Json,Listview,Android Custom View,NullPointerException android.widget.ArrayAdapter.init(ArrayAdapter.java)只是将Arraylist值添加到customAdapter类中,并将该值设置到listview中请参见下面的代码帮助 我的logcat错误: 01-22 14:50:46.049: E/i(26881): بعد بهش میگن با نجیب جمله بساز :میگه یدونه کت دارم نه جیب داره نه دکمه...!!
01-22 14:50:46.049: E/i(26881): بعد بهش میگن با نجیب جمله بساز :میگه یدونه کت دارم نه جیب داره نه دکمه...!!
01-22 14:50:46.049: E/i(26881): به یک نفر میگن با جام جم جمله بساز میگه :مامان بیا جامو جم کن...
01-22 14:50:46.049: W/dalvikvm(26881): threadid=1: thread exiting with uncaught exception (group=0x417e9a08)
01-22 14:50:46.059: E/AndroidRuntime(26881): FATAL EXCEPTION: main
01-22 14:50:46.059: E/AndroidRuntime(26881): java.lang.NullPointerException
01-22 14:50:46.059: E/AndroidRuntime(26881): at android.widget.ArrayAdapter.init(ArrayAdapter.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at android.widget.ArrayAdapter.<init>(ArrayAdapter.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at it.gmariotti.cardslib.library.internal.CardArrayAdapter.<init>(CardArrayAdapter.java:116)
01-22 14:50:46.059: E/AndroidRuntime(26881): at ir.reza.smss.Fragments.TabFragment1.populateSpinner(TabFragment1.java:75)
01-22 14:50:46.059: E/AndroidRuntime(26881): at ir.reza.smss.GetCategories.onPostExecute(GetCategories.java:88)
01-22 14:50:46.059: E/AndroidRuntime(26881): at ir.reza.smss.GetCategories.onPostExecute(GetCategories.java:1)
01-22 14:50:46.059: E/AndroidRuntime(26881): at android.os.AsyncTask.finish(AsyncTask.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at android.os.AsyncTask.access$600(AsyncTask.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at android.os.Handler.dispatchMessage(Handler.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at android.os.Looper.loop(Looper.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at android.app.ActivityThread.main(ActivityThread.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at java.lang.reflect.Method.invokeNative(Native Method)
01-22 14:50:46.059: E/AndroidRuntime(26881): at java.lang.reflect.Method.invoke(Method.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
01-22 14:50:46.059: E/AndroidRuntime(26881): at dalvik.system.NativeStart.main(Native Method)
[代码>01-22 14:50:01-22 14:50:50:17.04 9:46.09:17:17:40:40:50:01-22 14:50:01-22 22 14:50:50:50:50:01-22 14 14:50:50:40:40.04 9:14:14:14:14:14:14:14:14:14:14:10 10 10 10 10 10 10 10 10 10:14.10 10 10 10 10 10 10:14:14:14:14:14:14:17:10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14:14 14 14 14 14 14:14 14 14:14:14:14:14:14:14:14 14 14 14 14:14 14 14 14 14:14:14:14 14 14 14 14:45 1740بد㶓ههههکهه。。。!!
17-22 14:50:22 14:50:50:50:46:46.049:E/i(26881):50:50:50:50:50:50:50:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:17:14:14:17:17:17:14:14:14:14:14:14:14:14:17:14:14:14:14:14:14:14:14:14:14:14:14:14:14:50:50:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:40:مکن。。。
01-22 14:50:46.049:W/dalvikvm(26881):threadid=1:线程以未捕获异常退出(组=0x417e9a08)
01-22 14:50:46.059:E/AndroidRuntime(26881):致命异常:主
01-22 14:50:46.059:E/AndroidRuntime(26881):java.lang.NullPointerException
01-22 14:50:46.059:E/AndroidRuntime(26881):位于android.widget.ArrayAdapter.init(ArrayAdapter.java)
01-22 14:50:46.059:E/AndroidRuntime(26881):在android.widget.ArrayAdapter.(ArrayAdapter.java)上
01-22 14:50:46.059:E/AndroidRuntime(26881):at it.gmarioti.cardslib.library.internal.cardarayadapter.(cardarayadapter.java:116)
01-22 14:50:46.059:E/AndroidRuntime(26881):在ir.reza.smss.Fragments.TabFragment1.populateSpinner(TabFragment1.java:75)
01-22 14:50:46.059:E/AndroidRuntime(26881):在ir.reza.smss.GetCategories.onPostExecute(GetCategories.java:88)上
01-22 14:50:46.059:E/AndroidRuntime(26881):在ir.reza.smss.GetCategories.onPostExecute(GetCategories.java:1)中
01-22 14:50:46.059:E/AndroidRuntime(26881):在android.os.AsyncTask.finish(AsyncTask.java)上
01-22 14:50:46.059:E/AndroidRuntime(26881):在android.os.AsyncTask.access$600(AsyncTask.java)
01-22 14:50:46.059:E/AndroidRuntime(26881):位于android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java)
01-22 14:50:46.059:E/AndroidRuntime(26881):在android.os.Handler.dispatchMessage(Handler.java)上
01-22 14:50:46.059:E/AndroidRuntime(26881):在android.os.Looper.loop(Looper.java)上
01-22 14:50:46.059:E/AndroidRuntime(26881):在android.app.ActivityThread.main(ActivityThread.java)上
01-22 14:50:46.059:E/AndroidRuntime(26881):位于java.lang.reflect.Method.Invokenactive(本机方法)
01-22 14:50:46.059:E/AndroidRuntime(26881):位于java.lang.reflect.Method.invoke(Method.java)
01-22 14:50:46.059:E/AndroidRuntime(26881):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)上
01-22 14:50:46.059:E/AndroidRuntime(26881):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java)上
01-22 14:50:46.059:E/AndroidRuntime(26881):在dalvik.system.NativeStart.main(本机方法)
这是TabFragment1:
package ir.reza.smss.Fragments;
import ir.reza.smss.Category;
import ir.reza.smss.GetCategories;
import ir.reza.smss.GooglePlaySmallCard;
import ir.reza.smss.R;
import ir.reza.smss.ServiceHandler;
import it.gmariotti.cardslib.library.internal.Card;
import it.gmariotti.cardslib.library.internal.CardArrayAdapter;
import it.gmariotti.cardslib.library.view.CardListView;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.actionbarsherlock.app.SherlockFragment;
@SuppressLint("ValidFragment")
public class TabFragment1 extends SherlockFragment {
// array list for spinner adapter
ProgressDialog pDialog;
// Url to get all categories
private String URL_CATEGORIES = "http://varzesh-ilam.xzn.ir/app/get_categories.php";
public static ArrayList<Category> categoriesList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_tab_1, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
GetCategories webServiceTask = new GetCategories(this.getActivity());
webServiceTask.execute();
}
public void populateSpinner() {
ArrayList<Card> cards = new ArrayList<Card>();
for (int i = categoriesList.size()-1; i >= 0; --i) {
GooglePlaySmallCard card = new GooglePlaySmallCard(this.getActivity());
card.setTitle(categoriesList.get(i).getName());
card.count=i;
Log.e("i", categoriesList.get(i).getName());
cards.add(card);
}
CardArrayAdapter mCardArrayAdapter = new CardArrayAdapter(getActivity(),cards);
CardListView listView = (CardListView) getActivity().findViewById(R.id.carddemo_list_gplaycard);
if (listView!=null){
listView.setAdapter(mCardArrayAdapter);
}
}
}
包ir.reza.smss.Fragments;
进口ir.reza.smss.Category;
导入ir.reza.smss.GetCategories;
导入ir.reza.smss.googlePlaySmollard;
进口ir.reza.smss.R;
导入ir.reza.smss.ServiceHandler;
导入it.gmariotti.cardslib.library.internal.Card;
导入it.gmariotti.cardslib.library.internal.cardarayadapter;
导入it.gmariotti.cardslib.library.view.CardListView;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.OutputStreamWriter;
导入java.util.ArrayList;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.annotation.SuppressLint;
导入android.app.ProgressDialog;
导入android.content.Context;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入com.actionbarsherlock.app.SherlockFragment;
@SuppressLint(“有效碎片”)
公共类TabFragment1扩展了SherlockFragment{
//微调器适配器的数组列表
ProgressDialog;
//获取所有类别的Url
私有字符串URL_类别=”http://varzesh-ilam.xzn.ir/app/get_categories.php";
公共静态ArrayList分类列表;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
返回充气机。充气(R.layout.fragment_tab_1,容器,错误);
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
GetCategories webServiceTask=新的GetCategories(this.getActivity());
execute();
}
public void populateSpinner(){
ArrayList cards=新的ArrayList();
对于(int i=categoriesList.size()-1;i>=0;--i){
GooglePlaySmollCard=新的GooglePlaySmollCard(this.getActivity());
setTitle(categoriesList.get(i).getName());
card.count=i;
Log.e(“i”,categoriesList.get(i.getName());
卡片。添加(卡片);
}
CardArrayAdapter mCardArrayAdapter=新的CardArrayAdapter(getActivity(),cards);
CardListView listView=(CardListView)getActivity().findViewById(R.id.carddemo\u list\u gplaycard);
如果(listView!=null){
setAdapter(mCardArrayAdapter);
}
}
}
这是GetCategories:
package ir.reza.smss;
import ir.reza.smss.Fragments.TabFragment1;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
public class GetCategories extends AsyncTask<Void, Void, Void> {
private Context context;
ProgressDialog pDialog;
// Url to get all categories
private String URL_CATEGORIES = "http://varzesh-ilam.xzn.ir/app/get_categories.php";
public GetCategories(Context context) {
this.context = context;
TabFragment1.categoriesList = new ArrayList<Category>();
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(context);
pDialog.setMessage("Loading...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
ServiceHandler jsonParser = new ServiceHandler();
String json = jsonParser.makeServiceCall(URL_CATEGORIES, ServiceHandler.GET);
Log.e("Response: ", "> " + json);
if (json != null) {
try {
JSONObject jsonObj = new JSONObject(json);
if (jsonObj != null) {
JSONArray categories = jsonObj
.getJSONArray("categories");
for (int i = 0; i < categories.length(); i++) {
JSONObject catObj = (JSONObject) categories.get(i);
Category cat = new Category(catObj.getInt("id"),
catObj.getString("name"));
TabFragment1.categoriesList.add(cat);
Log.e("categories", "sakhte shod loop ham por shod");
}
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("JSON Data", "Didn't receive any data from server!");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
TabFragment1 tb1 = new TabFragment1();
tb1.populateSpinner();
}
}
包ir.reza.smss;
导入ir.reza.smss.Fragments.TabFragment1;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.OutputStreamWriter;
导入java.util.ArrayList;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.annotation.SuppressLint;
导入android.app.Activity;
导入android.app.ProgressDialog;
导入android.content.Context;
导入android.os.AsyncTask;
导入android.util.Log;
公共类GetCategories扩展异步任务{
私人语境;
ProgressDialog;
//获取所有类别的Url
私有字符串URL_类别=”http://varzesh-ilam.xzn.ir/app/get_categories.php";
公共GetCategories(上下文){
this.context=con