代码如下:
主函数中
gridview.setOnItemClickListener(new OnItemClickListener() {   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {    
    HashMap item = (HashMap)parent.getItemAtPosition(position);
             Intent intent = new Intent(MainActivity.this, ActivityCardPage.class);    User user = new User();
   user._id = Integer.parseInt(String.valueOf(item.get("_id")));
   user.username = String.valueOf(item.get("username"));
   user.imageId = Integer.parseInt(String.valueOf(item.get("imageid")));
intent.putExtra("user", user);
   
    startActivity(intent);
 } }); ActivityCardPage.java中
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.card_detail);

//获得意图
Intent intent = getIntent();
//从意图中得到需要的user对象
user = (User) intent.getSerializableExtra("user");
// 加载数据,往控件上赋值
loadUserData();
                   }
public void loadUserData() {
et_name = (TextView) findViewById(R.id.username);

// 为控件赋值
et_name.setText(user.username);
imageView.setImageResource(user.imageId);
}点击主界面跳转时,程序会意外停止,不知道什么原因,请高手知道,非常感谢

解决方案 »

  1.   

    发LogCat中的详细错误说明上来看看
      

  2.   

    空指针了吧,user.username是空的,对么?JavaBean是怎么写的,你没写过么? 没有写过J2EE程序?Javabean中一般都是getter and setter方法,即:private String username;public void setUsername(String username) {
      this.username = username;
    }public String getUsername() {
      return this.username;
    }在第一个类中,应该是:user.setUsername(String.valueOf(item.get("username")));
    在第二个类中,应该是:String username = user.getUsername();这样就对了。这问题,唉.
      

  3.   

    或者说,你的User类没有被实例化,即没有实现Serializable接口
      

  4.   

    fatal exception:main
    java.lang.NumberFormatException:unable to parse 'null' as integer
    at java.lang.Integer.parse(Integer.java:433)
    at java.lang.Integer.parseInt(Integer.java:422)
    at java.lang.Integer.parseInt(Integer.java:382)
    at com.card.mango.MainActivity$1.onItemClick(MainActivity.java:81)
    at android.widget.AdapterView.performItemClick(AdapterView.java:284)
    at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
    at android.os.Handler.handleCallback(Handler.java:587)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:4627)
    at java.lang.reflect.Method.invikeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    at dalvik.system.NativeStart.main(Native Method)
    这些都是什么意思?
      

  5.   


    user.username = String.valueOf(item.get("username"));
    user.imageId = Integer.parseInt(String.valueOf(item.get("imageid")));
    这两句里
    user.username中的内容可以传递到第二个类中,user.imageId是图片的id地址,在调试中看到是空的
      

  6.   

    user._id = Integer.parseInt(String.valueOf(item.get("_id")));
    user.username = String.valueOf(item.get("username"));
    user.imageId = Integer.parseInt(String.valueOf(item.get("imageid")));这几个参数从item里获取的时候拿到null指针了,String.valueof之后就变成了"null"这样的字符串,然后你初始化User的时候就想把这个字符串转换为int,就出问题了
      

  7.   

    用Bundle
            ListView lv = (ListView)findViewById(R.id.listView1);
            lv.setOnItemClickListener(
             new OnItemClickListener() {
             public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  
                            long arg3) {  
             HashMap map =(HashMap) arg0.getItemAtPosition(arg2);
             UserItem uItem = (UserItem) map.get("UserItemObj");
            
             Bundle b = new Bundle();
             b.putSerializable("UserItemObj", uItem);
            
             Intent intent = new Intent(arg0.getContext(), UserDetailActivity.class);
            
             intent.putExtra("UserItemObj", b);
             startActivity(intent);
            
                         
                    }  
    }); protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.userdetailactivity);

    Bundle bn = new Bundle();
    bn = getIntent().getExtras().getBundle("UserItemObj");
    UserItem uItem = (UserItem) bn.getSerializable("UserItemObj");
           }
      

  8.   

    多谢大家的回答,问题解决了,在第二个java文件中少了
    imageView = (ImageView)findViewById(R.id.imageId);
    所以指针传递会出现错误。