为了账号安全,请及时绑定邮箱和手机立即绑定

更改 Fragment 的背景图像

更改 Fragment 的背景图像

慕桂英4014372 2021-08-04 10:42:26
我试图在几秒钟后更改我的片段的背景图像,但我仍然遇到问题!我使用片段是因为我使用了标签栏。该应用程序将正常运行,直到 2.5 秒,这是更改背景的时间!我确定问题是由代码而不是应用程序引起的!这是我的代码:public class LogInFragment extends android.support.v4.app.Fragment {    LinearLayout login_layout;    public LogInFragment() {    }    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        login_layout = (LinearLayout) getActivity().findViewById(R.id.linear1);        Handler handler = new Handler();        handler.postDelayed(new Runnable() {            @Override            public void run() {                change();            }        }, 2500);    }    private void change()    {        Random random = new Random();        int image_change = random.nextInt(5 - 1) + 1;        switch (image_change)        {            case 1:                login_layout.setBackgroundResource(R.drawable.blue1);                break;            case 2:                login_layout.setBackgroundResource(R.drawable.yellow1);                break;            case 3:                login_layout.setBackgroundResource(R.drawable.red1);                break;            default:                login_layout.setBackgroundResource(R.drawable.green1);        }    }    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {        return inflater.inflate(R.layout.fragment_log_in, container, false);    }}如果有人可以帮助我,我会很高兴
查看完整描述

1 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

删除 login_layout = (LinearLayout) getActivity().findViewById(R.id.linear1); 从oncreate。因为在fragment中我们必须使用inflate,所以在oncreateview中找到视图。在 oncreateview 中试试这个: View rootView = inflater.inflate(R.layout.fragment_log_in, container, false); login_layout = (LinearLayout) rootView.findViewById(R.id.linear1); 返回根视图


查看完整回答
反对 回复 2021-08-04
  • 1 回答
  • 0 关注
  • 396 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信