0

我的活动课

private String[] mStrings2={"Title 01","Title 02"};
private String[] mStrings = {"Link to the image1", "Link to the image2"};

MyAdapter adapter;

        mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {              

            adapter=new LazyAdapter(this, mStrings, mStrings2);
            subList.setAdapter(adapternew);                       

        }
    });


MyAdapter class (MyAdapter.java)

    private Activity activity;
    private String[] data;
    private String[] data2;
    private static LayoutInflater inflater=null;
    public ImageLoader imageLoader; 

//Constructor
public LazyAdapter(Activity a, String[] d, String[] mStrings2) {
        activity = a;
        data=d;
        data2=mStrings2;
        inflater = LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        imageLoader=new ImageLoader(activity.getApplicationContext());
    }

当我单击第一个列表项时,我想在第二个数组中加载元素。但是在执行代码时,我得到了“NullPointerException”。如何解决这个问题。请指导我。

编辑....

    06-12 14:21:42.499: E/AndroidRuntime(1429): java.lang.NullPointerException
06-12 14:21:42.499: E/AndroidRuntime(1429):     at com.java.hotelapp.Item_List$1.onItemClick(Item_List.java:106)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at android.widget.AdapterView.performItemClick(AdapterView.java:282)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at android.widget.AbsListView.performItemClick(AbsListView.java:1037)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2449)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at android.widget.AbsListView$1.run(AbsListView.java:3073)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at android.os.Handler.handleCallback(Handler.java:587)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at android.os.Looper.loop(Looper.java:132)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at android.app.ActivityThread.main(ActivityThread.java:4123)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at java.lang.reflect.Method.invokeNative(Native Method)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at java.lang.reflect.Method.invoke(Method.java:491)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
06-12 14:21:42.499: E/AndroidRuntime(1429):     at dalvik.system.NativeStart.main(Native Method)
4

3 回答 3

0

我看不到adapternew适配器的声明,所以它可能是null..

subList.setAdapter(adapternew);         

这条线应该是,

adapter = new LazyAdapter(MyActivity.this, mStrings, mStrings2);
subList.setAdapter(adapter);   
于 2012-06-12T08:47:05.540 回答
0

也许另一个建议:

mainList.setOnItemClickListener(new AdapterView.OnItemClickListener()

会不会是这样mainList == null

并且,请提供正确的代码以及故障的确切时刻和线路。堆栈跟踪的特定部分也很好。

于 2012-06-12T08:51:04.670 回答
0
ListView lv = (ListView)this.findViewById(R.id.listviewid);
lv.setItemsCanFocus(false); 

or try onlistitemclick

 @Override    
 protected void onListItemClick(ListView lv, View v, int position, long id) {       
    // TODO Auto-generated method stub  
   super.onListItemClick(lv, v, position, id);  
 } 
于 2012-06-12T09:06:56.127 回答