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 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//循环设置控件
//功能3 直接跳跃
rbs[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i=0;iif (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 list;
public MyVpAdapter(@NonNull @NotNull FragmentManager fm, List 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();
}
}
}
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);
}
}
是不是没绑定控件,就是布局那边和你java代码这里应该通过ID去建立联系,比如说那个tv,看看是不是这个问题。
另外55行那个方法看看他的重载到底需要传入哪种参数,确定好参数列表。
你的tv和vp控件没有findViewById,绑定布局文件的控件,所以空对象了
控件Id没有绑定,空指针了提示你的两个地方看一下