///Adapter
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.reviewholder> {
private Context context;
private List<ShowBean.DataBean>list=new ArrayList<>();
public RecyclerAdapter(Context context) {
this.context = context;
this.list= new ArrayList<>();
}
public void addData(List<ShowBean.DataBean> dataBeans){
list.addAll(dataBeans);
notifyDataSetChanged();
} public void addData1(List<ShowBean.DataBean> dataBeans){
list.clear();
list.addAll(dataBeans);
notifyDataSetChanged();
}
@NonNull
@Override
public reviewholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return new reviewholder(LayoutInflater.from(context).inflate(R.layout.recyclerbase,null));
}
@Override
public void onBindViewHolder(@NonNull reviewholder reviewholder, int i) {
reviewholder.textl.setText(list.get(i).getTitle());
reviewholder.text2.setText(list.get(i).getCreatetime());
ImageLoader.getInstance().displayImage((list.get(i).getImages()).split("\\|")[0],reviewholder.image, Myapplication.getoptions());
final int pid = list.get(i).getPid();
final String detailUrl = list.get(i).getDetailUrl();
reviewholder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OnRecycleItemListener.OnRecycleItemClick(detailUrl,pid);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
class reviewholder extends RecyclerView.ViewHolder{
ImageView image;
TextView textl,text2;
public reviewholder(@NonNull View itemView) {
super(itemView);
image= itemView.findViewById(R.id.image);
textl= itemView.findViewById(R.id.text1);
text2= itemView.findViewById(R.id.text2);
}
}
OnRecycleItemListener OnRecycleItemListener;
public void setOnRecycleItemListener(RecyclerAdapter.OnRecycleItemListener onRecycleItemListener) {
OnRecycleItemListener = onRecycleItemListener;
}
public interface OnRecycleItemListener {
void OnRecycleItemClick(String s,int i);
}
}
---------------------------------------------------------------------------------------------------------------------
public class MainActivity extends AppCompatActivity implements IShowView{
private EditText edittext;
private TextView text;
private XRecyclerView xrecycler;
private Presenter presenter;
String name="手机";
int page;
private RecyclerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取资源ID
edittext = findViewById(R.id.edittext);
text= findViewById(R.id.text);
xrecycler= findViewById(R.id.xrecycler);
presenter = new Presenter(this);
// presenter.getData(name,page);
getinto();
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
name=edittext.getText().toString();
presenter.getData(name,page);
}
});
}
private void getinto() {
xrecycler.setPullRefreshEnabled(true);
xrecycler.setLoadingMoreEnabled(true);
xrecycler.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
page=0;
presenter.getData(name,page);
xrecycler.refreshComplete();
}
@Override
public void onLoadMore() {
page++;
presenter.getData(name,page);
xrecycler.loadMoreComplete();
}
});
adapter = new RecyclerAdapter(this);
xrecycler.setLayoutManager(new LinearLayoutManager(this));
xrecycler.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
xrecycler.setAdapter(adapter);
}
@Override
public void getLists(ShowBean showBean) {
List<ShowBean.DataBean> data = showBean.getData();
if (page==0){
adapter.addData1(data);
}else {
adapter.addData(data);
}
adapter.setOnRecycleItemListener(new RecyclerAdapter.OnRecycleItemListener() {
@Override
public void OnRecycleItemClick(String s, int i) {
Intent intent = new Intent(MainActivity.this,ShowActivity.class);
intent.putExtra("s",s);
startActivity(intent);
}
});
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------
<EditText
android:layout_marginTop="10dp"
android:id="@+id/edittext"
android:layout_marginLeft="12dp"
android:layout_width="480dp"
android:background="#E6E6FA"
android:hint="在千万海外商品中搜索"
android:drawableLeft="@mipmap/aa"
android:layout_height="wrap_content" />
<TextView
android:layout_marginTop="12dp"
android:id="@+id/text"
android:text="取消"
android:textStyle="bold"
android:textSize="20dp"
android:textColor="#f000"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.jcodecraeer.xrecyclerview.XRecyclerView
android:layout_below="@id/edittext"
android:id="@+id/xrecycler"
android:paddingTop="8dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
本文介绍了一个基于手机商品搜索的应用实例,应用中包含了搜索功能、分页展示商品列表、商品详情点击事件处理以及适配不同设备的界面设计。通过XRecyclerView实现数据的下拉刷新与上拉加载更多功能,提供了良好的用户体验。
645

被折叠的 条评论
为什么被折叠?



