今天新了解:RecyclerView CardView

这两个是5.0新加的。有其他的,没了解。

着重看了RecyclerView。并写了个Demo。具体看的是:

http://blog.csdn.net/lmj623565791/article/details/45059587【张鸿洋的博客】


我的总结是:1,控件

2,设置

3,添加适配器


1,控件,在布局中添加控件

   <android.support.v7.widget.RecyclerView
        android:id="@+id/id_recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


2,设置,在activity中找到控件,然后进行设置。

RecyclerView  rlv =  rlv.setLayoutManager(new LinearLayoutManager(this));

(设置中,还可以给item加上动画

//设置Item增加、移除动画rlv.setItemAnimator(new DefaultItemAnimator());

3,添加适配器

HomeAdapter ha = new HomeAdapter();
        rlv.setAdapter(ha);
 


具体代码:




import java.util.ArrayList;


import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;




public class MainActivity extends ActionBarActivity {


    private RecyclerView rlv;
private ArrayList< String> al;


@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        initData();
        
        rlv = (RecyclerView) findViewById(R.id.id_recyclerview);//获取控件RecyclerView 
        rlv.setLayoutManager(new LinearLayoutManager(this));//给控件RecyclerView 设置属性(方向啦(竖向或横向滑动),有几格几列啦(实现ViewGroup))
        HomeAdapter ha = new HomeAdapter();//适配器
        rlv.setAdapter(ha);//添加适配器
        
    }

//初始化些数据
    private void initData() {
al = new ArrayList<String>();
for(int i=0;i<20;i++){
al.add("lalala"+i);
}
}



@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
    
    
    //适配器,继承的是RecyclerView.Adapte(要求添加泛型)

   //重写三个方法,自动添加的
    class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyHomeholder>
    
    {

    //返回定义的ViewHolder
    @Override
public MyHomeholder onCreateViewHolder(ViewGroup arg0, int arg1) {
// TODO Auto-generated method stub
   
    MyHomeholder mh = new MyHomeholder(View.inflate(MainActivity.this, R.layout.item_home, null));
   
return mh;
}

//返回数据的数目
@Override
public int getItemCount() {
// TODO Auto-generated method stub
return al.size();
}

//没有返回值的方法。给item。即:通过holder给item设置具体数据
@Override
public void onBindViewHolder(MyHomeholder holder, int position) {
// TODO Auto-generated method stub
holder.tv.setText(al.get(position));
}


//自定义的holder,继承ViewHolder(ViewHolder来自v7包)
   
class MyHomeholder extends ViewHolder{
TextView tv;
public MyHomeholder(View itemView) {
super(itemView);
// TODO Auto-generated constructor stub
tv=(TextView) itemView.findViewById(R.id.tv_tv);
}

}
   
   
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值