加载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 的用法我的其它博客里面有 不懂的话可以看一下

0 0
原创粉丝点击