返回时返回空指针异常
NullpointerExpection returned when back pressed
我正在将值从 Activity A 发送到 Activity B 并将数据设置到视图,它工作正常但是当我按下后退按钮时它返回 nullpointerexpection
在 textView.setText()
方法中。我已经实现如下:
Intent i = getIntent();
serialArrayList = i.getParcelableExtra("member_list");
gridView = (GridView) findViewById(R.id.officerGrid);
adapter = new DistrictOfficerGridAdapter(this, serialArrayList);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
startActivity(new Intent(getApplicationContext(), MemberDetailsActivity.class));
Intent in = new Intent(DistrictOfficerActivity.this, MemberDetailsActivity.class);
in.putExtra("name", serialArrayList.getTitle());
in.putExtra("desig", serialArrayList.getPosition());
in.putExtra("contact", serialArrayList.getMobile());
in.putExtra("addr", serialArrayList.getAddress());
in.putExtra("blood", serialArrayList.getBloodGroup());
in.putExtra("image",serialArrayList.getPhotos());
in.putExtra("email", serialArrayList.getEmail());
in.putExtra("desc", serialArrayList.getDesc());
in.putExtra("website", serialArrayList.getWebsite());
in.putExtra("land", serialArrayList.getLandline());
startActivity(in);
}
});
并且从MemberDetailsActivity
接收数据并实现如下:
nam = getIntent().getStringExtra("name").toString();
design = getIntent().getStringExtra("desig");
contat = getIntent().getStringExtra("contact");
addr = getIntent().getStringExtra("addr");
blood = getIntent().getStringExtra("blood");
image = getIntent().getStringExtra("image");
website = getIntent().getStringExtra("website");
email = getIntent().getStringExtra("email");
landL = getIntent().getStringExtra("land");
name.setText(nam.toString());
desig.setText(design.toString());
phoneNumber.setText(contat.toString());
address.setText(addr.toString());
bloodG.setText(blood.toString());
Glide.with(getApplicationContext()).load(image).into(imag);
web.setText(website.toString());
emai.setText(email.toString());
landline.setText(landL.toString());
你在这里犯了一个错误。您正在调用您的 Activity 两次,因此请删除其中一个。试试这个
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent in = new Intent(DistrictOfficerActivity.this, MemberDetailsActivity.class);
in.putExtra("name", serialArrayList.getTitle());
in.putExtra("desig", serialArrayList.getPosition());
in.putExtra("contact", serialArrayList.getMobile());
in.putExtra("addr", serialArrayList.getAddress());
in.putExtra("blood", serialArrayList.getBloodGroup());
in.putExtra("image",serialArrayList.getPhotos());
in.putExtra("email", serialArrayList.getEmail());
in.putExtra("desc", serialArrayList.getDesc());
in.putExtra("website", serialArrayList.getWebsite());
in.putExtra("land", serialArrayList.getLandline());
startActivity(in);
}
});
我希望这对你有用。
你开始activity两次。
startActivity(new Intent(getApplicationContext(), MemberDetailsActivity.class));
删除此行。每当您单击项目 activity 时都会打开两次,这意味着当您向后按时活动会添加到堆栈中,您没有从 activity 获得意图,这就是它给出空指针异常的原因。
我正在将值从 Activity A 发送到 Activity B 并将数据设置到视图,它工作正常但是当我按下后退按钮时它返回 nullpointerexpection
在 textView.setText()
方法中。我已经实现如下:
Intent i = getIntent();
serialArrayList = i.getParcelableExtra("member_list");
gridView = (GridView) findViewById(R.id.officerGrid);
adapter = new DistrictOfficerGridAdapter(this, serialArrayList);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
startActivity(new Intent(getApplicationContext(), MemberDetailsActivity.class));
Intent in = new Intent(DistrictOfficerActivity.this, MemberDetailsActivity.class);
in.putExtra("name", serialArrayList.getTitle());
in.putExtra("desig", serialArrayList.getPosition());
in.putExtra("contact", serialArrayList.getMobile());
in.putExtra("addr", serialArrayList.getAddress());
in.putExtra("blood", serialArrayList.getBloodGroup());
in.putExtra("image",serialArrayList.getPhotos());
in.putExtra("email", serialArrayList.getEmail());
in.putExtra("desc", serialArrayList.getDesc());
in.putExtra("website", serialArrayList.getWebsite());
in.putExtra("land", serialArrayList.getLandline());
startActivity(in);
}
});
并且从MemberDetailsActivity
接收数据并实现如下:
nam = getIntent().getStringExtra("name").toString();
design = getIntent().getStringExtra("desig");
contat = getIntent().getStringExtra("contact");
addr = getIntent().getStringExtra("addr");
blood = getIntent().getStringExtra("blood");
image = getIntent().getStringExtra("image");
website = getIntent().getStringExtra("website");
email = getIntent().getStringExtra("email");
landL = getIntent().getStringExtra("land");
name.setText(nam.toString());
desig.setText(design.toString());
phoneNumber.setText(contat.toString());
address.setText(addr.toString());
bloodG.setText(blood.toString());
Glide.with(getApplicationContext()).load(image).into(imag);
web.setText(website.toString());
emai.setText(email.toString());
landline.setText(landL.toString());
你在这里犯了一个错误。您正在调用您的 Activity 两次,因此请删除其中一个。试试这个
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent in = new Intent(DistrictOfficerActivity.this, MemberDetailsActivity.class);
in.putExtra("name", serialArrayList.getTitle());
in.putExtra("desig", serialArrayList.getPosition());
in.putExtra("contact", serialArrayList.getMobile());
in.putExtra("addr", serialArrayList.getAddress());
in.putExtra("blood", serialArrayList.getBloodGroup());
in.putExtra("image",serialArrayList.getPhotos());
in.putExtra("email", serialArrayList.getEmail());
in.putExtra("desc", serialArrayList.getDesc());
in.putExtra("website", serialArrayList.getWebsite());
in.putExtra("land", serialArrayList.getLandline());
startActivity(in);
}
});
我希望这对你有用。
你开始activity两次。
startActivity(new Intent(getApplicationContext(), MemberDetailsActivity.class));
删除此行。每当您单击项目 activity 时都会打开两次,这意味着当您向后按时活动会添加到堆栈中,您没有从 activity 获得意图,这就是它给出空指针异常的原因。