m0_64547132 2022-11-29 00:44 采纳率: 28.6%
浏览 43

Fragmen跳转到Activity闪退

Fragmen广告页跳转到Activity登录页闪退

img

加入事件监听后闪退
SplashActivity2.java
package com.example.lzx.mysmarts26;

import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;

import com.example.lzx.mysmarts26.fragment.FragmentOne;
import com.example.lzx.mysmarts26.fragment.FragmentThree;
import com.example.lzx.mysmarts26.fragment.FragmentTwo;

import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.List;

public class SplashActivity2 extends AppCompatActivity {
    private ViewPager vp;
    private List<Fragment> fragmentList;
    private MyVpAdapter myVpAdapter;
    private RadioButton[] rbs = new RadioButton[3];
    private int[] rbsId={R.id.rb1,R.id.rb2,R.id.rb3};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash2);

        vp=findViewById(R.id.vp1);//1
        //2数据源
        fragmentList=new ArrayList<>();
        fragmentList.add(new FragmentOne());
        fragmentList.add(new FragmentTwo());
        fragmentList.add(new FragmentThree());

        //3.适配器,绑定数据源
        myVpAdapter = new MyVpAdapter(getSupportFragmentManager(),fragmentList);

        //4.控件绑定适配器
        vp.setAdapter(myVpAdapter);
        for (int i = 0;i<rbs.length;i++) {
            rbs[i]=findViewById(rbsId[i]);//循环设置控件
            //功能3 直接跳跃
            rbs[i].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    for (int i=0;i<rbs.length;i++) {
                        if (v==rbs[i]) {
                            vp.setCurrentItem(i);
                        }
                    }
                }
            });
        }
        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                rbs[position].setChecked(true);
            }

            @Override
            public void onPageSelected(int position) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }


    class MyVpAdapter extends FragmentPagerAdapter{
        private List<Fragment> list;

        public MyVpAdapter(@NonNull @NotNull FragmentManager fm,  List<Fragment> list) {
            super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
            this.list = list;
        }


        @NonNull
        @Override
        public Fragment getItem(int position) {
            return list.get(position);
        }

        @Override
        public int getCount() {
            return list.size();
        }
    }
}


FragmentThree.java
package com.example.lzx.mysmarts26.fragment;

import android.content.Intent;
import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.lzx.mysmarts26.LoginActivity326;
import com.example.lzx.mysmarts26.R;


public class FragmentThree extends Fragment {

    private TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getActivity(), LoginActivity326.class);
                startActivity(intent);
            }
        });
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_three, container, false);


    }
}

Locat报错

img

img

他告诉我24行有错

img

55行也有错

img

所以有哪位同仁能帮忙看看哪里出了问题,感谢!
  • 写回答

3条回答 默认 最新

  • freezing? 2022-11-29 01:01
    关注

    是不是没绑定控件,就是布局那边和你java代码这里应该通过ID去建立联系,比如说那个tv,看看是不是这个问题。
    另外55行那个方法看看他的重载到底需要传入哪种参数,确定好参数列表。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月29日

悬赏问题

  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用
  • ¥15 ios可以实现ymodem-1k协议 1024字节传输吗?