RecyclerView

compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'

//横向代码
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
 linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
 rv.setLayoutManager(linearLayoutManager);
//设置水平两行Gridview
rv.setLayoutManager(new GridLayoutManager(MainActivity.this,2,GridLayoutManager.HORIZONTAL,false));


MainActivity代码

//找到控件id
rv = findViewById(R.id.rv);

myadapter = new Myadapter(MainActivity.this, list);
//给控件设置适配器
rv.setAdapter(myadapter);
// 类名.方法名调用  参数为接口的方法   new  类名.接口的名字   此为点击事件的方法
myadapter.huidiao(new Myadapter.Itemclick() {
    @Override
    public void itemclick(View view, int position) {
        User u=new User(R.drawable.a,"你猜");
        //添加数据的方法   方法定义在适配器中
      myadapter.addlist(u,position);
       //删除数据的方法 
        myadapter.removelist(position);
        
    }
});
//设置动画
rv.setItemAnimator(new DefaultItemAnimator());
 //必须设置   三种模式
 rv.setLayoutManager(new LinearLayoutManager(MainActivity.this));
 // rv.setLayoutManager(new GridLayoutManager(MainActivity.this,2));
//  rv.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));


适配器的代码
/<Myadapter.Myhodler>为类名.优化类名
public class Myadapter extends RecyclerView.Adapter <Myadapter.Myhodler>{
    private Context contect;
    List<User> list;
    private Itemclick item;

    public Myadapter(Context contect, List<User> list) {
        this.contect = contect;
        this.list = list;
    }

    //找到自定义的xml布局
    @Override
    public Myhodler onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = View.inflate(contect, R.layout.my_rv, null);

        //把view放到优化类里面
        Myhodler myhodler=new Myhodler(view);

        return myhodler;
    }

//给控件设置数据
@Override
public void onBindViewHolder(final Myhodler holder, final int position) {
    ImageLoader.getInstance().displayImage(list.get(position).getUserImg(),holder.iv);
    holder.tv.setText(list.get(position).getName());
  
    //item为接口的变量名
    if (item!=null){
        //holder为Myhodler holder的参数
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //调用接口的方法
                item.itemclick(holder.itemView,position);
            }
        });
    }
}

//优化类  有几个控件定义几个
class Myhodler extends RecyclerView.ViewHolder{
    //提供set  get方法
    private ImageView iv;
    private TextView tv;

    public Myhodler(View itemView) {
        super(itemView);
        //这个必须有  有几个控件定义几个
        this.tv=itemView.findViewById(R.id.tv);
        this.iv=itemView.findViewById(R.id.iv);
        
    }

      
 }
 //定义接口
 public interface Itemclick{
     void itemclick(View view,int position);
 }

 //定义方法   参数1为接口  2为接口的变量名
 public void huidiao(Itemclick item){
     this.item=item;
 }

//添加数据的方法   在点击事件里面调用
 public void addlist(User user,int position){
   list.add(position,user);
     //更新适配器
   notifyItemInserted(position);//参数,位置,在那里插入了数据
 }

 //删除的方法
 public void removelist(int position){
     list.remove(position);
     notifyItemRemoved(position);
     notifyItemRangeChanged(position, list.size());
 }

内容概要:本文针对火电厂参与直购交易挤占风电上网空间的问题,提出了一种风火打捆参与大用户直购交易的新模式。通过分析可再生能源配额机制下的双边博弈关系,建立了基于动态非合作博弈理论的博弈模型,以直购电价和直购电量为决策变量,实现双方收益均衡最大化。论文论证了纳什均衡的存在性,并提出了基于纳什谈判法的风-火利益分配方法。算例结果表明,该模式能够增加各方收益、促进风电消纳并提高电网灵活性。文中详细介绍了模型构建、成本计算和博弈均衡的实现过程,并通过Python代码复现了模型,包括参数定义、收益函数、纳什均衡求解、利益分配及可视化分析等功能。 适合人群:电力系统研究人员、能源政策制定者、从事电力市场交易的工程师和分析师。 使用场景及目标:①帮助理解风火打捆参与大用户直购交易的博弈机制;②为电力市场设计提供理论依据和技术支持;③评估不同政策(如可再生能源配额)对电力市场的影响;④通过代码实现和可视化工具辅助教学和研究。 其他说明:该研究不仅提供了理论分析,还通过详细的代码实现和算例验证了模型的有效性,为实际应用提供了参考。此外,论文还探讨了不同场景下的敏感性分析,如证书价格、风电比例等对市场结果的影响,进一步丰富了研究内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值