加载fragment和fragment的自动跳转
来源:互联网 发布:那些斗图是用什么软件 编辑:程序博客网 时间:2024/05/31 06:23
import java.util.ArrayList;
import java.util.List;
import zhaozhipeng.fragment.setUp1fragment;
import zhaozhipeng.fragment.setUp2fragment;
import zhaozhipen.fragment.setUp3fragment;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.text.style.LineHeightSpan.WithDensity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends FragmentActivity {
protected static final int SHOW_BUTTON_VISIABLE = 10;
private ViewPager viewPagter;
private List fragments;
private Button btnLog;
private ViewPagerAdapter viewPagerAdapter;
private int index=0;
private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { int ind; switch (msg.what) { case SHOW_BUTTON_VISIABLE: startActivity(new Intent(MainActivity.this,HomeActivity.class)); break; default: ind=msg.what; viewPagter.setCurrentItem(ind); break; } };};@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_log_one); setView(); // 为viewpager配置适配器 ViewPagerAdapter(); viewPagter.setAdapter(viewPagerAdapter); new Thread(new Runnable() { @Override public void run() { while (true) { SystemClock.sleep(2000); handler.sendEmptyMessage(index); if (index==fragments.size()-1) { Message message=Message.obtain(); message.what=SHOW_BUTTON_VISIABLE; handler.sendMessage(message); break; } index++; } } }).start(); btnLog.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, HomeActivity.class)); } });}private void ViewPagerAdapter() { fragments = new ArrayList<Fragment>(); fragments.add(new setUp1fragment()); fragments.add(new setUp2fragment()); fragments.add(new setUp3fragment()); viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());}private void setView() { btnLog = (Button) findViewById(R.id.btn_log); viewPagter = (ViewPager) findViewById(R.id.viewPager);}/** * 为viewpager配置适配器 * * */class ViewPagerAdapter extends FragmentPagerAdapter { public ViewPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int arg0) { return fragments.get(arg0); } @Override public int getCount() { return fragments.size(); }}
}
1.新建三个class extends Fragment 并加载碎片布局 :
public class setUp1fragment extends Fragment{
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_setup1, null); return view ;}
}
2.在activity中为viewpager配置adapter添加加载的fragment:
private void ViewPagerAdapter() {
fragments = new ArrayList();
fragments.add(new setUp1fragment());
fragments.add(new setUp2fragment());
fragments.add(new setUp3fragment());
viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
}
3.开启线程new Thread(new Runnable() {
@Override
public void run() {
while (true) {
SystemClock.sleep(2000);
handler.sendEmptyMessage(index);
if (index==fragments.size()-1) {
Message message=Message.obtain();
message.what=SHOW_BUTTON_VISIABLE;
handler.sendMessage(message);
break;
}
index++;
}
}
}).start();
主线程中不能更新UI使用handler方法实现界面的跳转(SystemClock.sleep(2000)):系统睡眠两秒
4.handler 的用法我的其它博客里面有 不懂的话可以看一下
- 加载fragment和fragment的自动跳转
- activity和fragment跳转
- Fragment和Activity跳转的问题
- FragMent的静态加载和动态加载
- Fragment的跳转问题
- Fragment跳转的生命周期
- fragment之间的跳转
- 两个fragment的跳转
- Fragment之间的跳转
- 动态加载fragment和实现fragment 之间的通信
- 外部Activity跳转回Fragment和PullToRefreshListView的自动刷新问题
- fragment跳转到fragment
- 关于Fragment的加载和切换问题
- Fragment跳转
- Fragment跳转
- Fragment跳转
- Fragment跳转
- fragment的静态加载
- ASP.NET中时间差的问题
- 用Delphi发邮件
- Linux 常用目录作用
- CentOS 6.5 生产环境编译安装LNMP
- Unsupported major.minor version 51.0(jdk版本错误)
- 加载fragment和fragment的自动跳转
- vc2008 occcont.cpp, Line 926 f:/dd/vctools/vc7libs/ship/
- 多模式匹配AC算法(更正)
- 项目管理控制-搭建自己的SVN服务器
- 《Redis实战》读书笔记
- linux下PostgreSQL安装和简单配置
- [Android]Android studio 通用工程项目作为通用库与其他app相依赖的本地实现
- JavaScript中this详解
- 使用windows自带ntp客户端进行时间同步的方法