Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从上下文启动新活动在自定义ListView适配器中不起作用_Android_Android Intent_Android Listview_Android Context - Fatal编程技术网

Android 从上下文启动新活动在自定义ListView适配器中不起作用

Android 从上下文启动新活动在自定义ListView适配器中不起作用,android,android-intent,android-listview,android-context,Android,Android Intent,Android Listview,Android Context,我制作了一个自定义列表视图来解析JSON对象并在列表中处理它!一切正常,但当我试图通过单击ListView项目打开一个新的意图时,应用程序崩溃了!我还使用内存缓存来存储从JSON对象url解析的图像,以在ListView中显示它 public class ListViewAdapter extends BaseAdapter { // Declare Variables Context context; LayoutInflater inflater; Arra

我制作了一个自定义列表视图来解析JSON对象并在列表中处理它!一切正常,但当我试图通过单击ListView项目打开一个新的意图时,应用程序崩溃了!我还使用内存缓存来存储从JSON对象url解析的图像,以在ListView中显示它

public class ListViewAdapter extends BaseAdapter {

    // Declare Variables
    Context context;
    LayoutInflater inflater;
    ArrayList<HashMap<String, String>> data;
    ImageLoader imageLoader;
    HashMap<String, String> resultp = new HashMap<String, String>();

    public ListViewAdapter(Context context,
            ArrayList<HashMap<String, String>> arraylist) {
        this.context = context;
        data = arraylist;
        imageLoader = new ImageLoader(context);
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    public View getView(final int position, View convertView, ViewGroup parent) {
        TextView rank;
        TextView country;
        TextView population;
        ImageView flag;

        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View itemView = inflater.inflate(R.layout.listview_item, parent, false);
        // Get the position
        resultp = data.get(position);

        rank = (TextView) itemView.findViewById(R.id.rank);
        country = (TextView) itemView.findViewById(R.id.country);
        population = (TextView) itemView.findViewById(R.id.population);

        flag = (ImageView) itemView.findViewById(R.id.flag);

        rank.setText(resultp.get(MainActivity.RANK));
        country.setText(resultp.get(MainActivity.COUNTRY));
        population.setText(resultp.get(MainActivity.POPULATION));
        imageLoader.DisplayImage(resultp.get(MainActivity.FLAG), flag);
        itemView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                resultp = data.get(position);
                Intent intent = new Intent(context, SingleItemView.class);
                intent.putExtra("rank", resultp.get(MainActivity.RANK));
                intent.putExtra("country", resultp.get(MainActivity.COUNTRY));
                intent.putExtra("population",resultp.get(MainActivity.POPULATION));
                intent.putExtra("flag", resultp.get(MainActivity.FLAG));
                context.startActivity(intent);

            }
        });
        return itemView;
    }
}
公共类ListViewAdapter扩展了BaseAdapter{
//声明变量
语境;
充气机;
阵列列表数据;
图像加载器;
HashMap resultp=新的HashMap();
公共ListViewAdapter(上下文,
ArrayList(ArrayList){
this.context=上下文;
数据=数组列表;
imageLoader=新的imageLoader(上下文);
}
@凌驾
public int getCount(){
返回data.size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
文本视图等级;
TextView国家/地区;
文本视图人口;
图像视图标志;
充气器=(充气器)上下文
.getSystemService(上下文布局\充气机\服务);
视图项视图=充气机。充气(R.layout.listview\u项,父项,false);
//获得职位
resultp=data.get(位置);
rank=(TextView)itemView.findViewById(R.id.rank);
country=(TextView)itemView.findViewById(R.id.country);
population=(TextView)itemView.findViewById(R.id.population);
flag=(ImageView)itemView.findViewById(R.id.flag);
rank.setText(resultp.get(MainActivity.rank));
country.setText(resultp.get(MainActivity.country));
setText(resultp.get(MainActivity.population));
imageLoader.DisplayImage(resultp.get(MainActivity.FLAG),FLAG);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0){
resultp=data.get(位置);
意向意向=新意向(上下文,SingleItemView.class);
intent.putExtra(“rank”,resultp.get(MainActivity.rank));
intent.putExtra(“国家”,resultp.get(MainActivity.country));
intent.putExtra(“填充”,resultp.get(MainActivity.population));
intent.putExtra(“标志”,resultp.get(MainActivity.flag));
背景。开始触觉(意图);
}
});
返回项目视图;
}
}
Logcat输出:

12-25 14:50:50.929: E/AndroidRuntime(1501): FATAL EXCEPTION: main
12-25 14:50:50.929: E/AndroidRuntime(1501): Process: com.android.jsonparse, PID: 1501
12-25 14:50:50.929: E/AndroidRuntime(1501): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.android.jsonparse/com.android.jsonparse.SingleItemView}: java.lang.NullPointerException
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2102)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.app.ActivityThread.access$700(ActivityThread.java:135)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.os.Handler.dispatchMessage(Handler.java:102)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.os.Looper.loop(Looper.java:137)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.app.ActivityThread.main(ActivityThread.java:4998)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at java.lang.reflect.Method.invokeNative(Native Method)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at java.lang.reflect.Method.invoke(Method.java:515)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at dalvik.system.NativeStart.main(Native Method)
12-25 14:50:50.929: E/AndroidRuntime(1501): Caused by: java.lang.NullPointerException
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.content.ContextWrapper.getCacheDir(ContextWrapper.java:230)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at com.androidbegin.jsonparsetutorial.FileCache.<init>(FileCache.java:18)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at com.androidbegin.jsonparsetutorial.ImageLoader.<init>(ImageLoader.java:34)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at com.androidbegin.jsonparsetutorial.SingleItemView.<init>(SingleItemView.java:16)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at java.lang.Class.newInstanceImpl(Native Method)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at java.lang.Class.newInstance(Class.java:1208)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
12-25 14:50:50.929: E/AndroidRuntime(1501):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2093)
12-2514:50:50.929:E/AndroidRuntime(1501):致命异常:main
12-25 14:50:50.929:E/AndroidRuntime(1501):进程:com.android.jsonparse,PID:1501
12-25 14:50:50.929:E/AndroidRuntime(1501):java.lang.RuntimeException:无法实例化活动组件信息{com.android.jsonparse/com.android.jsonparse.SingleItemView}:java.lang.NullPointerException
12-25 14:50:50.929:E/AndroidRuntime(1501):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2102)
12-25 14:50:50.929:E/AndroidRuntime(1501):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
12-25 14:50:50.929:E/AndroidRuntime(1501):在android.app.ActivityThread.access$700(ActivityThread.java:135)
12-25 14:50:50.929:E/AndroidRuntime(1501):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
12-25 14:50:50.929:E/AndroidRuntime(1501):在android.os.Handler.dispatchMessage(Handler.java:102)上
12-25 14:50:50.929:E/AndroidRuntime(1501):在android.os.Looper.loop(Looper.java:137)
12-25 14:50:50.929:E/AndroidRuntime(1501):位于android.app.ActivityThread.main(ActivityThread.java:4998)
12-25 14:50:50.929:E/AndroidRuntime(1501):位于java.lang.reflect.Method.Invokenactive(本机方法)
12-25 14:50:50.929:E/AndroidRuntime(1501):在java.lang.reflect.Method.invoke(Method.java:515)
12-25 14:50:50.929:E/AndroidRuntime(1501):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
12-25 14:50:50.929:E/AndroidRuntime(1501):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
12-25 14:50:50.929:E/AndroidRuntime(1501):在dalvik.system.NativeStart.main(本机方法)
12-25 14:50:50.929:E/AndroidRuntime(1501):由以下原因引起:java.lang.NullPointerException
12-25 14:50:50.929:E/AndroidRuntime(1501):位于android.content.ContextWrapper.getCacheDir(ContextWrapper.java:230)
12-25 14:50:50.929:E/AndroidRuntime(1501):在com.androidbegin.jsonparsetutorial.FileCache。(FileCache.java:18)
12-25 14:50:50.929:E/AndroidRuntime(1501):位于com.androidbegin.jsonparsetutorial.ImageLoader。(ImageLoader.java:34)
12-25 14:50:50.929:E/AndroidRuntime(1501):在com.androidbegin.jsonparsetutorial.SingleItemView。(SingleItemView.java:16)
12-25 14:50:50.929:E/AndroidRuntime(1501):位于java.lang.Class.newInstanceImpl(本机方法)
12-25 14:50:50.929:E/AndroidRuntime(1501):位于java.lang.Class.newInstance(Class.java:1208)
12-25 14:50:50.929:E/AndroidRuntime(1501):在android.app.Instrumentation.newActivity(Instrumentation.java:1061)上
12-25 14:50:50.929:E/AndroidRuntime(1501):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2093)

在哪一行抛出错误??context.startActivity(intent);上传SingleItemView的代码,根本原因在SingleItemView中