小练习

//所用到的依赖和jar包 依赖XListView
compile ‘com.android.support:appcompat-v7:25.3.1’
compile ‘com.android.support.constraint:constraint-layout:1.0.2’
testCompile ‘junit:junit:4.12’
compile ‘org.xutils:xutils:3.5.0’
compile ‘com.android.support:design:25.3.1’
compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’
compile project(‘:XListView-master’)
compile files(‘libs/gson-2.7.jar’)

compile 'com.android.support:recyclerview-v7:25.2.0'
-------------------MainActivity 
package com.baway.wuxiaofang.monthexam.view.activity;

import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.baway.wuxiaofang.monthexam.R;
import com.baway.wuxiaofang.monthexam.model.bean.Info;
import com.baway.wuxiaofang.monthexam.view.adapter.MyViewpagerAdapter;
import com.baway.wuxiaofang.monthexam.view.fragment.MyFragment;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

private AlertDialog.Builder dialog;
private TabLayout tablayout;
private ViewPager viewpager;
private MyViewpagerAdapter adapter;
private Info info;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initView();
    setViewpagerAdapter();
    getDataFrom();
}


private void setViewpagerAdapter() {
    adapter = new MyViewpagerAdapter(getSupportFragmentManager(), this);
    viewpager.setAdapter(adapter);
}

private void initView() {
    tablayout = (TabLayout) findViewById(R.id.tablayout);
    viewpager = (ViewPager) findViewById(R.id.viewpager);


}



private void getDataFrom() {
    ArrayList<String> strings = new ArrayList<>();
    ArrayList<Fragment> fragList = new ArrayList<>();
    for (int i = 0; i < 8; i++) {
        strings.add("星期"+(i+1));
        MyFragment myFragment = new MyFragment();
        fragList.add(myFragment);
    }

    adapter.setList(strings,fragList);
    adapter.notifyDataSetChanged();

    tablayout.setupWithViewPager(viewpager);

}

}
———————ChnnelActivity
package com.baway.wuxiaofang.monthexam.view.activity;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.baway.wuxiaofang.monthexam.R;
import com.baway.wuxiaofang.monthexam.view.adapter.MyTouchAdapter;
import com.baway.wuxiaofang.monthexam.view.iview.MyCallback;

import java.lang.reflect.Type;
import java.util.ArrayList;

/**
* Created by lenovo on 2017/5/31.
*/

public class ChnnelActivity extends AppCompatActivity {

private RecyclerView myRv;
private RecyclerView otRv;
private ArrayList<String> list;
private ArrayList<String> myList;
private ArrayList<String> otList;
private MyAdapter myAdapter;
private MyAdapter otAdapter;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.channel);

    initView();
    setAdapter();
    getDataFromAdapter();
}

private void getDataFromAdapter() {
    list = getIntent().getStringArrayListExtra("list");
    myList = new ArrayList<>();
    otList = new ArrayList<>();

    for (int i = 0; i < list.size() / 2; i++) {
        myList.add(list.get(i));
    }

    for (int i = list.size() / 2; i < list.size(); i++) {
        otList.add(list.get(i));
    }

    myAdapter.setList(myList);
    otAdapter.setList(otList);

    myAdapter.notifyDataSetChanged();
    otAdapter.notifyDataSetChanged();
}

private void setAdapter() {
    myAdapter = new MyAdapter(0);
    otAdapter = new MyAdapter(1);
    myRv.setAdapter(myAdapter);
    otRv.setAdapter(otAdapter);

    MyCallback myCallback = new MyCallback(myAdapter);
    ItemTouchHelper touchHelper = new ItemTouchHelper(myCallback);
    touchHelper.attachToRecyclerView(myRv);

    MyCallback otCallback = new MyCallback(otAdapter);
    ItemTouchHelper touchHelper2 = new ItemTouchHelper(otCallback);
    touchHelper2.attachToRecyclerView(otRv);


}

private void initView() {
    myRv = (RecyclerView) findViewById(R.id.mtRv);
    otRv = (RecyclerView) findViewById(R.id.otRv);

    myRv.setLayoutManager(new GridLayoutManager(this, 4));

    otRv.setLayoutManager(new GridLayoutManager(this, 4));


}


class MyAdapter extends RecyclerView.Adapter implements MyTouchAdapter {
    ArrayList<String> strList = new ArrayList<>();
    int type;

    public MyAdapter(int type) {
        this.type = type;
    }

    public void setList(ArrayList<String> datas) {
        if (datas != null) {
            strList.addAll(datas);
        }
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        MyHolder myHolder = new MyHolder(View.inflate(ChnnelActivity.this, R.layout.ahannel_item, null));
        return myHolder;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
        MyHolder holder1 = (MyHolder) holder;
        holder1.tv.setText(strList.get(position));

        holder1.tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (type == 0) {
                    String instance = myAdapter.getInstance(position);
                    myAdapter.removeItem(position);
                    otAdapter.addItem(instance);
                } else if (type == 1) {
                    String instance = otAdapter.getInstance(position);
                    myAdapter.addItem(instance);
                    otAdapter.removeItem(position);
                }
            }
        });
    }

    @Override
    public int getItemCount() {
        return strList.size();
    }

    public String getInstance(int position) {
        return strList.get(position);
    }

    public void removeItem(int position) {
        strList.remove(position);
        notifyDataSetChanged();
    }

    public void addItem(String item) {
        strList.add(item);
        notifyDataSetChanged();

    }

    @Override
    public void onItemMove(RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) {
        if (type == 0) {
            int fromPosition = source.getAdapterPosition();
            int toPosition = target.getAdapterPosition();

// Toast.makeText(MainActivity.this, “fromPosition>>” + fromPosition + “>>toPosition>>” + toPosition, Toast.LENGTH_LONG).show();
if (toPosition == 0 || toPosition == 1) {
return;
} else {
if (fromPosition < list.size() && toPosition < list.size()) {
//交换数据位置
// Collections.swap(mData, fromPosition, toPosition);
String itemBean = list.get(fromPosition);
list.remove(fromPosition);
list.add(toPosition, itemBean);
//刷新位置交换
notifyItemMoved(fromPosition, toPosition);
}
}
//移动过程中移除view的放大效果
onItemClear(source);
}
}

    @Override
    public void onItemDissmiss(RecyclerView.ViewHolder source) {
        if (type == 0) {
            int position = source.getAdapterPosition();
            list.remove(position); //移除数据
            notifyItemRemoved(position);//刷新数据移除
        }
    }

    @Override
    public void onItemSelect(RecyclerView.ViewHolder source) {
        if (type == 0) {

//当拖拽选中时放大选中的view
int position = source.getAdapterPosition();
source.itemView.setScaleX(1.2f);
source.itemView.setScaleY(1.2f);
}
}

    @Override
    public void onItemClear(RecyclerView.ViewHolder source) {
        if (type == 0) {
            source.itemView.setScaleX(1.0f);
            source.itemView.setScaleY(1.0f);
        }
    }
}

class MyHolder extends RecyclerView.ViewHolder {

    private final TextView tv;

    public MyHolder(View itemView) {
        super(itemView);

        tv = (TextView) itemView.findViewById(R.id.text);
    }
}

}

———————————-adapter
package com.baway.wuxiaofang.monthexam.view.adapter;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;

/**
* Created by lenovo on 2017/5/30.
*/

public class MyViewpagerAdapter extends FragmentPagerAdapter {
Context context;
ArrayList strList = new ArrayList<>();
ArrayList fragmentList = new ArrayList<>();

public MyViewpagerAdapter(FragmentManager fm, Context context) {
    super(fm);
    this.context = context;
}

public void setList(ArrayList<String> strDatas, ArrayList<Fragment> fragDatas) {
    if (strDatas != null && fragDatas != null) {
        strList.addAll(strDatas);
        fragmentList.addAll(fragDatas);
    }
}

public MyViewpagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int position) {
    return fragmentList.get(position);
}

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

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

}


package com.baway.wuxiaofang.monthexam.view.adapter;

import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.TextView;

import com.baway.wuxiaofang.monthexam.R;
import com.baway.wuxiaofang.monthexam.model.bean.Info;
import com.baway.wuxiaofang.monthexam.view.activity.ChnnelActivity;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.sql.Array;
import java.util.ArrayList;
import java.util.List;

/**
* Created by lenovo on 2017/5/30.
*/

public class XlvAdapter extends BaseAdapter {
Context context;
List

}

package com.baway.wuxiaofang.monthexam.view.iview;

import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;

import com.baway.wuxiaofang.monthexam.view.adapter.MyTouchAdapter;

/**
* Created by lenovo on 2017/5/31.
*/

public class MyCallback extends ItemTouchHelper.Callback {
private MyTouchAdapter adapter;

public MyCallback(MyTouchAdapter adapter) {
    this.adapter = adapter;
}

@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
    int i = makeMovementFlags(ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT,
            ItemTouchHelper.RIGHT);
    return i;
}

@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
        adapter.onItemMove(viewHolder, target);
        return true;
}

@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {

}

@Override
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
    super.onSelectedChanged(viewHolder, actionState);
    if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {

//当滑动或者拖拽view的时候通过接口返回该ViewHolder
adapter.onItemSelect(viewHolder);
}
}

@Override
public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
    super.clearView(recyclerView, viewHolder);

    if (!recyclerView.isComputingLayout()) {

//当需要清除之前在onSelectedChanged或者onChildDraw,onChildDrawOver设置的状态或者动画时通过接口返回该ViewHolder
adapter.onItemClear(viewHolder);
}
}
}
————————————接口
package com.baway.wuxiaofang.monthexam.view.iview;

/**
* Created by lenovo on 2017/5/30.
*/

public interface Iview {
void getData(String data);
}

package com.baway.wuxiaofang.monthexam.view.adapter;

import android.support.v7.widget.RecyclerView;

/**
* Created by lenovo on 2017/5/31.
*/

public interface MyTouchAdapter{

//数据交换
void onItemMove(RecyclerView.ViewHolder source, RecyclerView.ViewHolder target);
//数据删除
void onItemDissmiss(RecyclerView.ViewHolder source);
//drag或者swipe选中
void onItemSelect(RecyclerView.ViewHolder source);
//状态清除
void onItemClear(RecyclerView.ViewHolder source);

}
————————–MainPresenter

package com.baway.wuxiaofang.monthexam.presenter;

import com.baway.wuxiaofang.monthexam.model.utils.HttpUtils;
import com.baway.wuxiaofang.monthexam.view.iview.Iview;

/**
* Created by lenovo on 2017/5/30.
*/

public class MainPresenter {
public void getData(final Iview iview){
String path=”http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9”;
HttpUtils.getdData(path, new HttpUtils.dataCallBack() {
@Override
public void getData(String data) {
iview.getData(data);
}
});
}
}
——————————–HttpUtils
package com.baway.wuxiaofang.monthexam.model.utils;

import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;

/**
* Created by lenovo on 2017/5/30.
*/

public class HttpUtils {
public static void getdData(String path, final dataCallBack datacallback) {
RequestParams requestParams = new RequestParams();
requestParams.setUri(path);
x.http().get(requestParams, new Callback.CommonCallback() {
@Override
public void onSuccess(String result) {
System.out.println(“——–”+result);
datacallback.getData(result);
}

        @Override
        public void onError(Throwable ex, boolean isOnCallback) {

        }

        @Override
        public void onCancelled(CancelledException cex) {

        }

        @Override
        public void onFinished() {

        }
    });
}


public interface dataCallBack {
    void getData(String data);
}

}

package com.baway.wuxiaofang.monthexam.model.utils;

import android.content.Context;
import android.icu.util.ULocale;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

/**
* Created by lenovo on 2017/5/30.
*/

public class IsNetUtils {
public static boolean isNet(Context context) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
    if (activeNetworkInfo != null) {
        return activeNetworkInfo.isAvailable();
    } else {
        return false;
    }
}

}
—————————Application

package com.baway.wuxiaofang.monthexam.app;

import android.app.Application;
import android.os.Environment;

import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;

import org.xutils.BuildConfig;
import org.xutils.x;

import java.io.File;

/**
* Created by lenovo on 2017/5/30.
*/

public class Myapp extends Application {
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
x.Ext.setDebug(BuildConfig.DEBUG);

    ImageLoaderConfiguration configuration =
            new ImageLoaderConfiguration.Builder(this)
                    .diskCacheSize(50 * 1024 * 1024)
                    .memoryCacheSize(2 * 1024 * 1024)
                    .diskCache(new UnlimitedDiskCache(new File(
                            Environment.getExternalStorageDirectory().getPath())))
                    .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
                    .denyCacheImageMultipleSizesInMemory()
                    .imageDecoder(new BaseImageDecoder(true))
                    .writeDebugLogs()
                    .threadPriority(Thread.NORM_PRIORITY)
                    .build();


    ImageLoader.getInstance().init(configuration);
}

}

——————————–bean包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值