android - 如何使用 Intent 从 Fragment 打开 Activity?

标签 android android-fragments nullpointerexception

当我在 fragment 内的按钮上使用 onClickListener 并使用 Intent 打开 Activity 时,它会给出 NullPointerException。

这是我的代码

public class TabFragment extends Fragment{

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

            View rootView = inflater.inflate(R.layout.tabs, container, false);

           Button tab1=(Button) getView().findViewById(R.id.tab1upgradeCost);
           tab1.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   Intent i = new Intent(getActivity(), MainActivity.class);
                  getActivity().startActivity(i);
               }
           });
            return rootView;
        }
    }

最佳答案

由于 tab1 未使用右 View 初始化,您正在获取 NLP

不要使用

Button tab1=(Button) getView().findViewById(R.id.tab1upgradeCost);

在 onCreateView() 中 getView() 将返回 null,因为仍然 fragment 未初始化。

改为使用

Button tab1=(Button) rooView.findViewById(R.id.tab1upgradeCost);

关于android - 如何使用 Intent 从 Fragment 打开 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41715944/

相关文章:

android - 从 fragment 管理器中删除旧 fragment

scala - Scala 中的空引用如何合理化?

exception - 在方法检查开始时将NPE引发

android - 是否可以以编程方式指定 <uses-permission>?

php - 如何发送有意从另一个 Activity 发送的数据?

android - 如果我在另一台设备上安装该应用程序,是否仍然可以使用预制 ID 登录?

android - 如何将 ImageView 添加到 ListFragment?

android - 如何从Native Android Activity获取数据到Flutter路由库?

java - NestedScrollView 中的 fragment

java - 扩展 BaseAdapter 的 ApkAdapter 类的 getView 方法中的 NullPointerException