MyException - 我的异常网
当前位置:我的异常网» Android » 简略的界面开始

简略的界面开始

www.MyException.Cn  网友分享于:2013-10-08  浏览:0次
简单的界面开始

rawerLayout是Library包中实现了侧滑菜单效果的控件,drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),

大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

一定要导入包

 

大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/draw"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <android.support.design.widget.TabLayout
            android:layout_width="match_parent"
            android:layout_height="45dp"
            app:tabMode="scrollable"
            android:id="@+id/tab_layout"
            >
        </android.support.design.widget.TabLayout>

        <android.support.v4.view.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/tab_layout"
            >
        </android.support.v4.view.ViewPager>

    </LinearLayout>

    <ListView
        android:id="@+id/left_lv"
        android:layout_width="240sp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="#191515"
        android:dividerHeight="1dp"
        android:background="#fff"
        />

</android.support.v4.widget.DrawerLayout>

大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

fragment.xml  里面写一个pullToRefreshListView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.handmark.pulltorefresh.library.PullToRefreshListView
        xmlns:ptr="http://schemas.android.com/apk/res-auto"
        android:id="@+id/pull_refresh_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#000000"
        android:divider="#19000000"
        android:dividerHeight="4dp"
        android:fadingEdge="none"
        android:fastScrollEnabled="false"
        android:footerDividersEnabled="false"
        android:headerDividersEnabled="false"
        android:smoothScrollbar="true"
        ptr:ptrAnimationStyle="rotate"
        ptr:ptrHeaderTextColor="#ffffff"
        ptr:ptrHeaderSubTextColor="#00ffff"
        ptr:ptrHeaderBackground="@null"
        ptr:ptrDrawable="@mipmap/ic_launcher"/>

</LinearLayout>

大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

下面是代码注释全自己看


import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.bwie.adapter.MyAdapter;
import com.bwie.fragment.TabFragment;
import java.util.ArrayList;
import java.util.List;


public class SecondActivity extends AppCompatActivity {


    private TabLayout tabLayout;
    private ViewPager viewPager;
    private DrawerLayout drawerLayout;
    private List<String> mTitleList = new ArrayList<>();//导航集合
    private ListView lv;
    private List<String> list = new ArrayList<>();
    private ArrayList<TabFragment> fs;
    private String[] urls = {
            "http://gank.io/api/data/Android/10/1",
            "http://gank.io/api/data/Android/10/2",
            "http://gank.io/api/data/Android/10/3",
            "http://gank.io/api/data/Android/10/4",
            "http://gank.io/api/data/Android/10/5",
            "http://gank.io/api/data/Android/10/6",
            "http://gank.io/api/data/Android/10/7",
            "http://gank.io/api/data/Android/10/8",
            "http://gank.io/api/data/Android/10/9",
            "http://gank.io/api/data/Android/10/10",
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);


        initData();
        initCehua();

    }


    private void initData() {

        tabLayout = (TabLayout) findViewById(R.id.tab_layout);
        viewPager = (ViewPager) findViewById(R.id.viewPager);
        tabLayout.setupWithViewPager(viewPager);  //tablayou 关联viewPager
        //标题集合添加数据
        mTitleList.add("头条");mTitleList.add("社会");mTitleList.add("国内");
        mTitleList.add("国际");mTitleList.add("娱乐");mTitleList.add("体育");
        mTitleList.add("军事");mTitleList.add("科技");mTitleList.add("财经");
        fs = new ArrayList<TabFragment>();


        for(int i=0;i<10;i++){
            TabFragment tf = new TabFragment();
            Bundle b = new Bundle();
            b.putString("url",urls[i]);
            tf.setArguments(b);
            fs.add(tf);
        }


        viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {


                TabFragment tabfragment = fs.get(position);


                return tabfragment;
            }


            @Override
            public int getCount() {
                return mTitleList.size();
            }


            @Override
            public CharSequence getPageTitle(int position) {
                return mTitleList.get(position);
            }
        });
    }

    private void initCehua() {


        drawerLayout= (DrawerLayout) findViewById(R.id.draw);
        lv= (ListView) findViewById(R.id.left_lv);
        list.add("搜索"); list.add("收藏"); list.add("消息");
        list.add("离线"); list.add("活动"); list.add("更多");


        MyAdapter adapter = new MyAdapter(SecondActivity.this,list);
        lv.setAdapter(adapter);


        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


                drawerLayout.closeDrawer(lv);
            }
        });
    }
}

大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

创建一个Fragment "TabFragment"

 

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.Toast;
import com.bwie.adapter.MyBaseAdapter;
import com.bwie.bean.SuperClassStudy;
import com.bwie.myapplication.R;
import com.bwie.utils.NetWorkUtils;
import com.bwie.utils.URLDB;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.List;

public class TabFragment extends Fragment {


    private MyBaseAdapter myBaseAdapter;
    private List<SuperClassStudy.ResultsBean> results;
    private PullToRefreshListView mPullRefreshListView;
    private String url = "";
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {


        View view = inflater.inflate(R.layout.fragment,container,false);

        mPullRefreshListView = (PullToRefreshListView) view.findViewById(R.id.pull_refresh_list);
        Bundle bundle = getArguments();
        url= bundle.getString("url");


        //加载utl对应的json数据,解析,展示在ListView上
        initView();
        initData();
        return view;
    }
    public void initData() {

        new AsyncTask<String,Integer,String>(){


            @Override
            protected String doInBackground(String... params) {


                String json = new NetWorkUtils().getJsonHttpConnetion(URLDB.URL_IJ+"1");


                return json;
            }


            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);


                SuperClassStudy superClassStudy = new Gson().fromJson(s, SuperClassStudy.class);
                results = superClassStudy.getResults();
                myBaseAdapter = new MyBaseAdapter(results,getActivity());
                mPullRefreshListView.setAdapter(myBaseAdapter);

            }
        }.execute();
    }


    public void initView(){
        mPullRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
            @Override
            public void onRefresh(PullToRefreshBase<ListView> refreshView) {

                //加载新数据,刷新显示
                pullToRefreshData();


                Toast.makeText(getActivity(),"刷新完毕",Toast.LENGTH_SHORT).show();
            }
        });
        mPullRefreshListView.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
            @Override
            public void onLastItemVisible() {
                //加载更多数据
                loadMoreData();
                Toast.makeText(getActivity(),"加载完毕",Toast.LENGTH_SHORT).show();
            }
        });
    }

    int count=1;
    //加载数据
    private void loadMoreData() {


        new AsyncTask<String,Integer,String>(){
            @Override
            protected String doInBackground(String... params) {
                count++;
                String json = new NetWorkUtils().getJsonHttpConnetion(URLDB.URL_IJ+count);

                return json;
            }


            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);

                SuperClassStudy superClassStudy = new Gson().fromJson(s, SuperClassStudy.class);
                List<SuperClassStudy.ResultsBean> results1 = superClassStudy.getResults();
                results.addAll(results1);
                myBaseAdapter.notifyDataSetChanged();//刷新适配器
            }
        }.execute();
    }

    //刷新数据
    private void pullToRefreshData() {
        new AsyncTask<String,Integer,String>(){

            @Override
            protected String doInBackground(String... params) {


                String json = new NetWorkUtils().getJsonHttpConnetion(url);

                return json;
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);

                SuperClassStudy superClassStudy = new Gson().fromJson(s, SuperClassStudy.class);
                results = superClassStudy.getResults();
                myBaseAdapter = new MyBaseAdapter(results,getActivity());
                mPullRefreshListView.setAdapter(myBaseAdapter);
                mPullRefreshListView.onRefreshComplete();//停止刷新

            }
        }.execute();
    }
}

 

生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气多多生气生气生气生气生气支持生气生气生气生气生气生气生气生气生气生气生气多多生气生气生气生气生气生气点赞生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气生气

 

文章评论

程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
鲜为人知的编程真相
鲜为人知的编程真相
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
 程序员的样子
程序员的样子
我的丈夫是个程序员
我的丈夫是个程序员
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员必看的十大电影
程序员必看的十大电影
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员和编码员之间的区别
程序员和编码员之间的区别
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
总结2014中国互联网十大段子
总结2014中国互联网十大段子
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
漫画:程序员的工作
漫画:程序员的工作
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员都该阅读的书
程序员都该阅读的书
一个程序员的时间管理
一个程序员的时间管理
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
旅行,写作,编程
旅行,写作,编程
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
代码女神横空出世
代码女神横空出世
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
老程序员的下场
老程序员的下场
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
Java程序员必看电影
Java程序员必看电影
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
中美印日四国程序员比较
中美印日四国程序员比较
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
我是如何打败拖延症的
我是如何打败拖延症的
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
如何成为一名黑客
如何成为一名黑客
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员的鄙视链
程序员的鄙视链
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有