MainActivity
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerview;
private ArrayList<String> list;//数据源
private MyAdapter mAdapter;//适配器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerview = (RecyclerView) findViewById(R.id.recyclerview);
LinearLayoutManager manager = new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false);
recyclerview.setLayoutManager(manager);
list = new ArrayList<>();
for (int i = 0; i <20 ; i++) {
list.add("内容-----"+i);
}
mAdapter = new MyAdapter(list,this,recyclerview);
recyclerview.setAdapter(mAdapter);
}
}
MyAdapter
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
/**
* @author alice
* @version 1.0
* @Date 2017/8/22 8:45
*/
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHoler>{
//数据源
private ArrayList<String> list;
private Context mContext;
private LayoutInflater mInflater;
private RecyclerView mrecyclerView;
public MyAdapter(ArrayList<String> list, Context context, RecyclerView mrecyclerView) {
this.list = list;
mContext = context;
this.mrecyclerView = mrecyclerView;
mInflater = LayoutInflater.from(context);
}
@Override
public MyViewHoler onCreateViewHolder(ViewGroup parent, int viewType) {
View view = mInflater.inflate(R.layout.item_layout,parent,false);
return new MyViewHoler(view);
}
@Override
public void onBindViewHolder(MyViewHoler holder, int position) {
holder.tv.setText(list.get(position));
}
@Override
public int getItemCount() {
return list.size();
}
//ViewHolder listView的item 的布局
class MyViewHoler extends RecyclerView.ViewHolder{
TextView tv;
public MyViewHoler(final View itemView) {
super(itemView);
tv = (TextView) itemView.findViewById(R.id.tv);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int posion = mrecyclerView.getChildPosition(view);
Toast.makeText(mContext, list.get(posion), Toast.LENGTH_SHORT).show();
}
});
}
}
}
activity_main布局
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bw.alice.recyclerviewdemo.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
item_layout布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv"
android:background="#C437F4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"/>
</LinearLayout>
清单文件
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bw.alice.recyclerviewdemo">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>