我试图在几秒钟后更改我的片段的背景图像,但我仍然遇到问题!我使用片段是因为我使用了标签栏。该应用程序将正常运行,直到 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); 返回根视图
添加回答
举报
0/150
提交
取消