写在前面,每个人的数据模型不一样,我使用的item和itemLab类在文末,对于数据这个没有重点描述,看看应该都能懂。所有代码都有,但是图方便和正确率可以直接clone我的git仓库代码。
star 我的项目,我会不断更新内容,更多基础demo,
项目地址:link
1.2.3.一起食用更容易理解
public abstract class SingleFragmentActivity extends AppCompatActivity {protected abstract Fragment createFragment();@Overrideprotected void onCreate(Bundle savedInstanceState) {Create(savedInstanceState);setContentView(R.layout.activity_fragment);FragmentManager fragmentManager = getSupportFragmentManager();FragmentTransaction transaction = fragmentManager.beginTransaction();place(R.id.fragment_container, createFragment());transactionmit();}
}
<FrameLayoutandroid:id="@+id/fragment_container"xmlns:android=""xmlns:app=""android:layout_width="match_parent"android:layout_height="match_parent" >
</FrameLayout>
public class ItemsListActivity extends SingleFragmentActivity {@Overrideprotected Fragment createFragment(){wInstance();}
}
public static ItemsListFragment newInstance(){return new ItemsListFragment();}
public class ItemsListFragment extends Fragment {public Toolbar mToolbar;private EditText mEditText;private RecyclerView mRecyclerView;private ItemAdapter mAdapter;public static ItemsListFragment newInstance(){return new ItemsListFragment();}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View v = inflater.inflate(R.layout.fragment_itemlist_recycler, container, false);//碎片视图mRecyclerView=(RecyclerView)v.findViewById(R.id.item_recycler_view);//recycler视图mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));upDateUI();return v;}@Overridepublic void onCreate(Bundle savedInstanceState) {Create(savedInstanceState);}private class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener{private TextView mTitleTextView;private TextView mDateTextView;private Item mitem;public ItemHolder(LayoutInflater inflater , ViewGroup parent){super(inflater.inflate(R.layout.fragment_list_xxxcontent,parent,false));//content视图itemView.setOnClickListener(this);mTitleTextView=(TextView)itemView.findViewById(R.id.item_title_list);mDateTextView=(TextView)itemView.findViewById(R.id.item_data_list);}public void bind(Item item){mitem=item;mTitleTextView.Title());mDateTextView.Data().toString());}@Overridepublic void onClick(View view){Toast.makeText(getActivity(),Title()+"cliced",Toast.LENGTH_LONG).show();Intent intentwInstance(getActivity(),Id());startActivity(intent);}}private class ItemAdapter extends RecyclerView.Adapter<ItemHolder>{private List<Item>mItems;public ItemAdapter(List<Item>items){mItems=items;}@NonNull@Overridepublic ItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {LayoutInflater layoutInflater=LayoutInflater.from(getActivity());return new ItemHolder(layoutInflater,parent);}@Overridepublic void onBindViewHolder(@NonNull ItemHolder holder, int position) {Item item(position);holder.bind(item);}@Overridepublic int getItemCount() {return mItems.size();}}private void upDateUI(){ItemLab itemLab(getActivity());List<Item>itemsItems();if (mAdapter==null){mAdapter=new ItemAdapter(items);mRecyclerView.setAdapter(mAdapter);}else {ifyDataSetChanged();}}}
<LinearLayoutxmlns:android=""xmlns:app=""android:id="@+id/drawer_layout"android:layout_height="match_parent"android:layout_width="match_parent"android:orientation="vertical">&lerview.widget.RecyclerViewxmlns:android=""android:id="@+id/item_recycler_view"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompatxmlns:android=""android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:padding="8dp"><TextViewandroid:id="@+id/item_title_list"android:layout_height="wrap_content"android:layout_width="match_parent"android:text="item_title"/><TextViewandroid:id="@+id/item_data_list"android:layout_height="wrap_content"android:layout_width="match_parent"android:text="item_data"/></androidx.appcompat.widget.LinearLayoutCompat>
mAdapter=new ItemAdapter(items);mRecyclerView.setAdapter(mAdapter);
@Overridepublic int getItemCount() {return mItems.size();}
@Overridepublic ItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {LayoutInflater layoutInflater=LayoutInflater.from(getActivity());return new ItemHolder(layoutInflater,parent);}
public ItemHolder(LayoutInflater inflater , ViewGroup parent){super(inflater.inflate(R.layout.fragment_list_xxxcontent,parent,false));//content视图itemView.setOnClickListener(this);mTitleTextView=(TextView)itemView.findViewById(R.id.item_title_list);mDateTextView=(TextView)itemView.findViewById(R.id.item_data_list);}
@Overridepublic void onBindViewHolder(@NonNull ItemHolder holder, int position) {Item item(position);holder.bind(item);}
public void bind(Item item){mitem=item;mTitleTextView.Title());mDateTextView.Data().toString());}
@Overridepublic void onClick(View view){Toast.makeText(getActivity(),Title()+"cliced",Toast.LENGTH_LONG).show();Intent intentwInstance(getActivity(),Id());startActivity(intent);}
Intent intentwInstance(getActivity(),Id());
startActivity(intent);
public class ItemPagerActivity extends AppCompatActivity {private ViewPager mViewPager;private List<Item>mItems; //@Overrideprotected void onCreate(Bundle savedInstanceState) {Create(savedInstanceState);setContentView(R.layout.activity_item_pager);UUID itemid = (UUID) getIntent().getSerializableExtra("itemid"); //mViewPager = (ViewPager) findViewById(R.id.activity_item_view_pager);mItems = (this).getmItems();FragmentManager fragmentManager = getSupportFragmentManager();mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {@Overridepublic Fragment getItem(int position) {Item item = (position);Id());}@Overridepublic int getCount() {return mItems.size();}});for (int i = 0; i < mItems.size(); i++) {if ((i).getmId().equals(itemid)) {mViewPager.setCurrentItem(i);break;}}}public static Intent newInstance(Context packageContenxt, UUID itemId){Intent intent=new Intent(packageContenxt,ItemPagerActivity.class);intent.putExtra("itemid",itemId);return intent;}
}
<androidx.viewpager.widget.ViewPagerxmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/activity_item_view_pager">
</androidx.viewpager.widget.ViewPager>
Item item = (position);Id());
public class ItemFragment extends Fragment {private Item mitem;private EditText mtitle;private EditText mdate;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View v = inflater.inflate(R.layout.fragment_item_dital, container, false);//碎片视图mtitle=(EditText)v.findViewById(R.id.item_title);mdate=(EditText)v.findViewById(R.id.item_data);mtitle.Title());return v;}public static ItemFragment newInstance(UUID itemid){Bundle args=new Bundle();args.putSerializable("itemid",itemid);ItemFragment fragment =new ItemFragment();fragment.setArguments(args);return fragment;}@Overridepublic void onCreate(Bundle savedInstanceState) {Create(savedInstanceState);UUID itemId=(UUID)getArguments().getSerializable("itemid");mitem(getActivity()).getItem(itemId);}@Overridepublic void onPause(){Pause();mitem.Text().toString());}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompatxmlns:android=""android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:padding="8dp"><EditTextandroid:id="@+id/item_title"android:layout_height="wrap_content"android:layout_width="match_parent"android:text="item_title"/><EditTextandroid:id="@+id/item_data"android:layout_height="wrap_content"android:layout_width="match_parent"android:text="item_data"/></androidx.appcompat.widget.LinearLayoutCompat>
到此viewpager功能实现,可以左右滑动,查看不同item.
最后贴上item和itemLab类代码:
public class Item {public boolean ismSoved() {return mSoved;}public void setmSoved(boolean mSoved) {this.mSoved = mSoved;}public Date getmData() {return mData;}public void setmData(Date mData) {this.mData = mData;}public UUID getmId() {return mId;}public void setmId(UUID mId) {this.mId = mId;}private UUID mId;public String getmTitle() {return mTitle;}public void setmTitle(String mTitle) {this.mTitle = mTitle;}private String mTitle;private Date mData;private boolean mSoved;public Item(){mId=UUID.randomUUID();mData=new Date();}
}
public class ItemLab {private static ItemLab sItemLab;private List<Item>mItems;public static ItemLab get(Context context){if(sItemLab==null){sItemLab=new ItemLab(context);}return sItemLab;}private ItemLab(Context context){mItems=new ArrayList<>();for(int i=0;i<100;i++){Item item=new Item();item.setmTitle("items "+i);item.setmSoved(i%2==0);mItems.add(item);}}public List<Item>getmItems(){return mItems;}public Item getItem(UUID id){for(Item item:mItems){Id().equals(id)){return item;}}return null;}
}
本文发布于:2024-02-03 07:41:54,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170691731449607.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |