gpt4 book ai didi

java - Android 上的 setter getter

转载 作者:行者123 更新时间:2023-12-01 11:51:30 24 4
gpt4 key购买 nike

也许这是一个非常愚蠢的问题。但因为这个 setter getter,我坚持了 5 个小时。

我有 Home_Fragment 类,其中有值 id_product ..这是我的 Home_Fragment 类

public class Home_Fragment extends ListFragment {

private Detail_Produk dp;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
dp = new Detail_Produk("1");
//** After this i call another activity but not Detail_Produk
}

在我的 Detail_Produk 类(class)中

String test;

View v;

public Detail_Produk() {
super();
}

public Detail_Produk(String test) {
super();
this.test = test;
}

public String getIDProduk() {
return test;
}

public void setIDProduk(String test) {
this.test = test;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v = inflater.inflate(R.layout.detail_produk, container, false);
Toast.makeText(getActivity(), "ID : " + getIDProduk().toString(), Toast.LENGTH_SHORT).show();
return v;
}

当我从另一个 Activity (不是 Home_Fragment)调用 Activity Detail_Produk 时。在线 Toast 给我错误 Java.Lang.NullPointerException。

我的代码错误或者我不能,因为我不是从 Home_Fragment 调用 Detail_Product Activity?

或者我应该使用共享首选项吗?

先谢谢了:)

最佳答案

这里的问题是,您在 Home_Fragment 中显式创建的 Detail_Produk 实例(并将 test 值传递给)是onActivityCreated() 完成后就会丢失。

当您的其他 Activity 请求启动 Detail_Produk Activity 时,Android 框架会实例化实际调用 onCreateView() 的实例。该实例没有设置其 test 值,因此您会得到 NPE。

您应该通过 Intent extra 传递此值。查看此 Android 开发者教程,了解 Activity 如何从启动它的 Intent 检索数据。

http://developer.android.com/training/basics/firstapp/starting-activity.html#ReceiveIntent

关于java - Android 上的 setter getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com