最终

切换布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="9"
        android:id="@+id/frame_layout"
        ></FrameLayout>
    <RadioGroup
        android:id="@+id/radio_group"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        >
        <RadioButton
            android:id="@+id/rb1"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:button="@null"
            android:checked="true"
            android:text="我的"
            android:textSize="20dp"
            android:gravity="center"
            android:drawableTop="@drawable/sel"
            />
        <RadioButton
            android:id="@+id/rb2"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:button="@null"
            android:drawableTop="@drawable/sel"
            android:text="你的"
            android:textSize="20dp"
            android:gravity="center"
            />
        <RadioButton
            android:id="@+id/rb3"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:button="@null"
            android:drawableTop="@drawable/sel"
            android:text="他的"
            android:textSize="20dp"
            android:gravity="center"
            />
    </RadioGroup>
</LinearLayout>

代码

package com.example.dell.shujuku;

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.FrameLayout;
import android.widget.RadioGroup;

import com.example.dell.shujuku.base.BaseActivity;
import com.example.dell.shujuku.fragment.fragment1;
import com.example.dell.shujuku.fragment.fragment2;
import com.example.dell.shujuku.fragment.fragment3;

public class MainActivity extends BaseActivity {


    private FrameLayout frameLayout;
    private RadioGroup radioGroup;
    private FragmentManager supportFragmentManager;
    private com.example.dell.shujuku.fragment.fragment1 fragment1;
    private com.example.dell.shujuku.fragment.fragment2 fragment2;
    private com.example.dell.shujuku.fragment.fragment3 fragment3;

    @Override
    protected void initView() {
        radioGroup = findViewById(R.id.radio_group);
    }

    @Override
    protected void initData() {
        fragment1 = new fragment1();
        fragment2 = new fragment2();
        fragment3 = new fragment3();
        //获取管理器
        supportFragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = supportFragmentManager.beginTransaction();
        transaction.add(R.id.frame_layout, fragment1)
                .add(R.id.frame_layout, fragment2)
                .add(R.id.frame_layout, fragment3)
                .show(fragment1)
                .hide(fragment2)
                .hide(fragment3)
                .commit();

    }


    @Override
    protected void Event() {
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                FragmentTransaction transaction = supportFragmentManager.beginTransaction();
                switch (checkedId){
                    case R.id.rb1:
                        transaction .show(fragment1)
                                .hide(fragment2)
                                .hide(fragment3).commit();
                        break;
                    case R.id.rb2:
                        transaction .show(fragment2)
                                .hide(fragment1)
                                .hide(fragment3).commit();
                        break;
                    case R.id.rb3:
                        transaction .show(fragment3)
                                .hide(fragment2)
                                .hide(fragment1).commit();
                        break;
                }
            }
        });
    }

    @Override
    public int bindlayout() {
        return R.layout.activity_main;
    }
}


上面可以切换

<?xml version="1.0" encoding="utf-8"?>



<android.support.design.widget.TabLayout
android:id="@+id/tab"
app:tabMode=“scrollable”
android:layout_width=“0dp”
android:layout_height=“match_parent”
android:layout_weight=“1”

        ></android.support.design.widget.TabLayout>
    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/see_true"
        android:id="@+id/img_pic"
        />
</LinearLayout>

<android.support.v4.view.ViewPager
android:layout_width=“match_parent”
android:layout_height=“0dp”
android:layout_weight=“1”
android:id="@+id/view_pager"
></android.support.v4.view.ViewPager>

```
代码

package com.example.dell.shujuku.fragment;

import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.widget.ImageView;

import com.example.dell.shujuku.R;
import com.example.dell.shujuku.adapter.FTAdpter;
import com.example.dell.shujuku.base.BaseFragment;
import com.example.dell.shujuku.tab.tab1;
import com.example.dell.shujuku.tab.tab2;

import java.util.ArrayList;

public class fragment1 extends BaseFragment {

private ImageView imageView;
private ViewPager pager;
private TabLayout tabLayout;
private ArrayList<Fragment> flist;
private ArrayList<String> tlist;

@Override
public int bindlayout() {
    return R.layout.frag1;
}

@Override
protected void initView() {
    imageView = getView().findViewById(R.id.img_pic);
    pager = getView().findViewById(R.id.view_pager);
    tabLayout = getView().findViewById(R.id.tab);
}

@Override
protected void initData() {
    //先是Viewpager的数据
    flist = new ArrayList<>();
    flist.add(new tab1());
    flist.add(new tab2());

    //然后是Tab的数据
    tlist = new ArrayList<>();
    for(int i = 0; i< flist.size(); i++){
        tlist.add("哲家大旗"+i);
    }
    //设置适配器
    pager.setAdapter(new FTAdpter(getActivity().getSupportFragmentManager(),flist,tlist));
    //绑定数据
    tabLayout.setupWithViewPager(pager);
}

@Override
protected void Event() {

}

}

Pager的 代码

package com.example.dell.shujuku.adapter;

import android.content.Context;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.widget.BaseAdapter;

import java.util.ArrayList;

public class FTAdpter extends FragmentPagerAdapter {
private ArrayList flist;
private ArrayList tlist;

public FTAdpter(FragmentManager fm, ArrayList<Fragment> flist, ArrayList<String> tlist) {
    super(fm);
    this.flist = flist;
    this.tlist = tlist;
}

@Override
public Fragment getItem(int i) {
    return flist.get(i);
}

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

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

}
//点击跳转

protected void Event() {
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //点击图片跳转
                Intent intent = new Intent(getActivity(), TwoActivity.class);
                //存入Tab数据
                intent.putStringArrayListExtra("key", tlist);
                startActivityForResult(intent, 100);

            }
        });
    }

//跳转的页面

package com.example.dell.shujuku;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.dell.shujuku.adapter.GAdapter;
import com.example.dell.shujuku.base.BaseActivity;

import java.util.ArrayList;

public class TwoActivity extends BaseActivity implements View.OnClickListener{


    private GridView g1;
    private GridView g2;
    private ArrayList<String> list1;
    private ArrayList<String> list2;
    private GAdapter gAdapter1;
    private GAdapter gAdapter2;
    private ImageView backs;
    private TextView textView;

    @Override
    protected void initView() {
        g1 = findViewById(R.id.G1);
        g2 = findViewById(R.id.G2);

        backs = findViewById(R.id.backs);
        textView = findViewById(R.id.finish);

        backs.setOnClickListener(this);
        textView.setOnClickListener(this);
    }

    @Override
    protected void initData() {
        //得到数据
        Intent intent = getIntent();
        //取出数据
        list1 = intent.getStringArrayListExtra("key");

        list2 = new ArrayList<>();
        for(int t=0;t<10;t++){
            list2.add("白骨精"+t);
        }
        
        //t2中删除t1的数据
        list2.remove(list1);
        
        //创建适配器
        gAdapter1 = new GAdapter(TwoActivity.this, list1);
        gAdapter2 = new GAdapter(TwoActivity.this,list2);

        //设置
        g1.setAdapter(gAdapter1);
        g2.setAdapter(gAdapter2);

    }

    @Override
    protected void Event() {
        //点击的时候
        g1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //点击的时候
                String ss = list1.get(position);
                list1.remove(ss);
                list2.add(ss);

                gAdapter1.notifyDataSetChanged();
                gAdapter2.notifyDataSetChanged();
            }
        });
        g2.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //点击的时候
                String sss = list2.get(position);
                list2.remove(sss);
                list1.add(sss);

                gAdapter1.notifyDataSetChanged();
                gAdapter2.notifyDataSetChanged();
            }
        });
    }

    @Override
    public int bindlayout() {
        return R.layout.activity_two;
    }
    //点击的时候回传
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.finish:
            case R.id.backs:
                Intent intent = new Intent();
                intent.putStringArrayListExtra("key", list1);
                setResult( 200,intent);
                finish();//注意一定要关闭页面,不然没效果
                break;
        }
    }
}

回调的页面

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //判断
        //取出集合
        //清楚所有集合的数据的数据
        //Tab目前的数据清空
        //把新的数据放入tab中
        //循环数据给Tab、
        //创建一个新的tab属性
        //取出数据 get(变量)赋值给新的Tab
        //然后在赋值给滑动的Tab
        //展示到第一个页面的数据
        //重要-------------------刷新适配器//绑定tablayout
        if(resultCode==200){
            ArrayList<String> newdate = data.getStringArrayListExtra("key");
            tlist.clear();
            flist.clear();
            tabLayout.removeAllTabs();
            tlist.addAll(newdate);
            for (int i=0;i<tlist.size();i++){
                TabLayout.Tab tab = tabLayout.newTab();
                tab.setText(tlist.get(i));
                tabLayout.addTab(tab);
                if (i==0){
                    flist.add(new tab1());
                }else{
                    flist.add(new tab2());
                }
            }
            ftAdpter.notifyDataSetChanged();
            tabLayout.setupWithViewPager(pager);
        }

    }

//数据库代码

package com.qy.month.tab;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.webkit.WebView;
import android.widget.ListView;
import android.widget.Toast;

import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.qy.month.R;
import com.qy.month.adapter.MyListAdapter;
import com.qy.month.base.BaseFragment;
import com.qy.month.beanlist.Four;
import com.qy.month.beanlist.One;
import com.qy.month.beanlist.Three;
import com.qy.month.beanlist.Two;
import com.qy.month.http.HttpUtils;
import com.qy.month.sql.SQLHelp;

import java.util.ArrayList;

public class Tab01 extends BaseFragment {

private PullToRefreshListView pull;
private ArrayList<One> ones;
private MyListAdapter adapter;
private SQLiteDatabase db;

@Override
protected int bindLayout() {
    return R.layout.tab01;
}

@Override
protected void initView() {
    pull = bindView(R.id.pull);
    pull.setMode(PullToRefreshBase.Mode.BOTH);
    pull.setPullToRefreshOverScrollEnabled(true);
    //创建数据库对象
    SQLHelp help = new SQLHelp(getActivity());
    db = help.getReadableDatabase();
}

@Override
protected void initData() {
    if (HttpUtils.isNetworkConnected(getActivity())) {
        //有网的时候加载数据
        HttpUtils.httpAsynTask("http://172.17.8.100/small/commodity/v1/commodityList",
                new HttpUtils.CallBackString() {


                    @Override
                    public void getData(String s) {
                        ones = getArrayData(s);
                        //设置适配器
                        adapter = new MyListAdapter(getActivity(), ones);
                        pull.setAdapter(adapter);
                        //添加数据库
                        Cursor cursor = db.query("person", null, null, null, null, null, null);
                        if (!cursor.moveToFirst()) {
                            ContentValues values = new ContentValues();
                            values.put("title", s);
                            db.insert("person", null, values);
                        }
                    }
                });
    } else {
        //没网络查询数据库
        Cursor cursor = db.query("person", null, null, null, null, null, null);
        if (cursor.moveToFirst()) {
            String sdb = cursor.getString(cursor.getColumnIndex("title"));
            ones = getArrayData(sdb);
            //设置适配器
            adapter = new MyListAdapter(getActivity(), ones);
            pull.setAdapter(adapter);
        }
    }


}

@Override
protected void bindEvent() {
    pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
        @Override
        public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
            if (HttpUtils.isNetworkConnected(getActivity())) {
                HttpUtils.httpAsynTask("http://172.17.8.100/small/commodity/v1/commodityList",
                        new HttpUtils.CallBackString() {
                            @Override
                            public void getData(String s) {

                            }
                        });
            } else {
                Toast.makeText(getActivity(), "没网", Toast.LENGTH_LONG).show();
            }
            pull.onRefreshComplete();
        }

        @Override
        public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
            if (HttpUtils.isNetworkConnected(getActivity())) {
                HttpUtils.httpAsynTask("http://172.17.8.100/small/commodity/v1/commodityList",
                        new HttpUtils.CallBackString() {
                            @Override
                            public void getData(String s) {
                                ArrayList<One> oneload = getArrayData(s);
                                //设置适配器
                                ones.addAll(oneload);
                                adapter.notifyDataSetChanged();
                                pull.onRefreshComplete();
                            }
                        });
            } else {
                Toast.makeText(getActivity(), "没网", Toast.LENGTH_LONG).show();
            }
            pull.onRefreshComplete();
        }
    });
}

public ArrayList<One> getArrayData(String s) {
    Gson gson = new Gson();
    Four four = gson.fromJson(s, Four.class);
    Three result = four.getResult();
    Two mlss = result.getMlss();
    Two pzsh = result.getPzsh();
    Two rxxp = result.getRxxp();

    ArrayList<One> oneM = new ArrayList<>();
    oneM.addAll(mlss.getCommodityList());
    oneM.addAll(pzsh.getCommodityList());
    oneM.addAll(rxxp.getCommodityList());
    return oneM;
}

}


猜你喜欢

转载自blog.csdn.net/zhe_guan/article/details/88251069