Android RecyclerView實(shí)現(xiàn)數(shù)據(jù)列表展示效果
本文實(shí)例為大家分享了Android九宮格圖片展示的具體代碼,供大家參考,具體內(nèi)容如下
1.首先導(dǎo)入依賴:
compile 'com.android.support:recyclerview-v7:25.3.1'
2.適配器類:
public class NewsAdapter extends RecyclerView.Adapter {
private View view;
private Context mcontext;
private ArrayList<NewsData.DataBean> mlist=new ArrayList<>();
public NewsAdapter(Context mcontext) {
this.mcontext = mcontext;
}
//找到需要導(dǎo)入的布局
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
view = LayoutInflater.from(mcontext).inflate(R.layout.news_item, null);
return new ViewHolder(view);
}
//加載相應(yīng)的內(nèi)容
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ViewHolder viewholder=(ViewHolder)holder;
viewholder.textview.setText(""+getItem(position).getNews_title());
Glide.with(mcontext).load(getItem(position).getPic_url()).into(viewholder.ima);
}
//手寫的重置數(shù)據(jù)的方法
public void setdata(ArrayList<NewsData.DataBean> list){
if (list!=null&&list.size()>0){
mlist.addAll(list);
}
}
//手寫的獲得視圖的方法
public NewsData.DataBean getItem(int position){
return mlist.get(position);
};
@Override
public int getItemCount() {
return mlist.size();
}
//定義的ViewHolder類繼承RecyclerView.ViewHolder 并找到布局中的ID
public class ViewHolder extends RecyclerView.ViewHolder{
private TextView textview;
private ImageView ima;
public ViewHolder(View itemView) {
super(itemView);
textview=(TextView)itemView.findViewById(R.id.tv);
ima=(ImageView)itemView.findViewById(R.id.image);
}
}
}
3.主界面(用到RecyclerView的主要是initdata()方法和Handler):
public class MainActivity extends AppCompatActivity implements IMainView{
private MainPresenter mainp;
private NewsAdapter md;
private RecyclerView recy;
private ArrayList<NewsData.DataBean> mlist=new ArrayList<>();
private String url="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private Handler hand=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Gson gson=new Gson();
if (msg.what==1) {
NewsData newsData = gson.fromJson(msg.obj.toString(), NewsData.class);
mlist=(ArrayList<NewsData.DataBean>) newsData.getData();
md.setdata((ArrayList<NewsData.DataBean>) mlist);
md.notifyDataSetChanged();
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initview();
initdata();
initdatafromserver();
}
private void initview() {
recy=(RecyclerView)findViewById(R.id.recy);
}
private void initdatafromserver() {
//加載網(wǎng)絡(luò)數(shù)據(jù),找P層去要
mainp.loadDataFromServer(url);
}
private void initdata() {
mainp=new MainPresenter(this);
//設(shè)置適配器
md=new NewsAdapter(this);
//創(chuàng)建默認(rèn)的線性LayoutManager
recy.setLayoutManager(new LinearLayoutManager(this));
recy.setAdapter(md);
}
//重寫的IMainView類接口的兩個(gè)方法
@Override
public void successfulCallback(String str) {
Message msg = Message.obtain();
msg.what=1;
msg.obj=str;
hand.sendMessage(msg);
}
@Override
public void errCallback(int code, String msg) {
}
}
效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android中RecyclerView實(shí)現(xiàn)多級折疊列表效果(二)
- Android中RecyclerView實(shí)現(xiàn)多級折疊列表效果(TreeRecyclerView)
- RecyclerView實(shí)現(xiàn)常見的列表菜單
- Android單個(gè)RecyclerView實(shí)現(xiàn)列表嵌套的效果
- Android使用RecyclerView實(shí)現(xiàn)自定義列表、點(diǎn)擊事件以及下拉刷新
- 使用RecyclerView實(shí)現(xiàn)水平列表
- Android列表RecyclerView排列布局
- RecyclerView優(yōu)雅實(shí)現(xiàn)復(fù)雜列表布局
相關(guān)文章
Flutter實(shí)現(xiàn)下拉刷新和上拉加載更多
這篇文章主要為大家詳細(xì)介紹了Flutter實(shí)現(xiàn)下拉刷新和上拉加載更多,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
AndroidGUI27中findViewById返回null的快速解決辦法
這篇文章主要介紹了AndroidGUI27中findViewById返回null的快速解決辦法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
一文詳解Jetpack?Android新一代導(dǎo)航管理Navigation
這篇文章主要為大家介紹了Jetpack?Android新一代導(dǎo)航管理Navigation詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Android?App頁面滑動(dòng)標(biāo)題欄顏色漸變詳解
這篇文章主要為大家詳細(xì)介紹了Android?App頁面滑動(dòng)標(biāo)題欄顏色漸變,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Kotlin 使用Lambda來設(shè)置回調(diào)的操作
這篇文章主要介紹了Kotlin 使用Lambda來設(shè)置回調(diào)的操作方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android如何通過Retrofit提交Json格式數(shù)據(jù)
本篇文章主要介紹了Android如何通過Retrofit提交Json格式數(shù)據(jù),具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08
解決Android Studio Gradle Metadata特別慢的問題
這篇文章主要介紹了解決Android Studio Gradle Metadata特別慢的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

