代码如下:
主函数中
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);
}点击主界面跳转时,程序会意外停止,不知道什么原因,请高手知道,非常感谢
主函数中
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);
}点击主界面跳转时,程序会意外停止,不知道什么原因,请高手知道,非常感谢
this.username = username;
}public String getUsername() {
return this.username;
}在第一个类中,应该是:user.setUsername(String.valueOf(item.get("username")));
在第二个类中,应该是:String username = user.getUsername();这样就对了。这问题,唉.
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)
这些都是什么意思?
user.username = String.valueOf(item.get("username"));
user.imageId = Integer.parseInt(String.valueOf(item.get("imageid")));
这两句里
user.username中的内容可以传递到第二个类中,user.imageId是图片的id地址,在调试中看到是空的
user.username = String.valueOf(item.get("username"));
user.imageId = Integer.parseInt(String.valueOf(item.get("imageid")));这几个参数从item里获取的时候拿到null指针了,String.valueof之后就变成了"null"这样的字符串,然后你初始化User的时候就想把这个字符串转换为int,就出问题了
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");
}
imageView = (ImageView)findViewById(R.id.imageId);
所以指针传递会出现错误。