編輯:關於Android編程
【服務器維護中,暫時不能上傳圖片】
(此處以RecyclerView存在於一個Fragment內為例)
需要import的主要的包:
android.support.v7.widget.RecyclerView(需要設置支持庫)
XXListFragment.java
public class XXListFragment extends Fragment { private RecyclerView mXXRecyclerView; private XXAdapter mAdapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_xx_list, container, false); //將私有成員mXXRecyclerView與布局中的RecyclerView綁定 mXXRecyclerView = (RecyclerView) v.findViewById(R.id.recycler_view_xx_list); //設置布局Manager mMemoRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); //以後可能會用到,故單獨拿出來做成一個函數 updateUI(); return v; } private void updateUI() { //初始化單例 XXLab xxLab = XXLab.get(getActivity()); Listxxs = xxLab.getMemos(); //初始化Adapter mAdapter = new XXAdapter(xxs); //為RecyclerView設置Adapter mXXRecyclerView.setAdapter(mAdapter); } //ViewHolder的匿名內部類 private class XXHolder extends RecyclerView.ViewHolder { //存儲該ViewHolder所顯示內容的對象 private XX mXX; //示例組件 //此處以每一項只顯示標題的RecyclerView為例 private TextView mTitle; public MemoHolder(View itemView) { super(itemView); //將組件與布局中的相應組件綁定 mTitle = (TextView) itemView.findViewById(R.id.xx_list_item_title); } public void bindXX(XX xx) { mXX = xx; //將組件實際顯示的內容修改為傳入的對象的相應內容 mTitle.setText(mXX.getTitle()); } } private class XXAdapter extends RecyclerView.Adapter { private List mXXs; public XXAdapter(List xxs) { mXXs = xxs; } @Override public XXHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater layoutInflater = LayoutInflater.from(getActivity()); //設置View //此處使用的布局是定制的列表項布局 View view = layoutInflater.inflate(R.layout.list_item_xx, parent, false); //創建新的ViewHolder return new XXHolder(view); } @Override public void onBindViewHolder(XXHolder holder, int position) { //該對象為儲存要顯示的內容的對象 XX xx = mXXs.get(position); //將這個對象傳給ViewHolder來綁定 //RecyclerView是會回收不顯示的ViewHolder來顯示新內容 //以達到節省資源的目的的組件 //所以此處傳入同一個ViewHolder的可能是不同的對象 holder.bindXX(xx); } //系統會用到的方法 @Override public int getItemCount() { return mXXs.size(); } } }
list_item_xx.xml(/res/layout/…)(定制列表項的內容)
fragment_xx_list.xml(/res/layout/…)
XX.java(用於儲存列表中一項的數據的類)
public class XX { private String mTitle; public void setTitle(String title) { mTitle = title; } public String getTitle() { return mTitle; } }
XXLab.java(儲存列表內容的單例)
public class MemoLab { //只允許存在一個單例 private static XXLab sXXLab; //單例維護的內容列表 private ListmXXs; private XXLab(Context context) { ... } public static XXLab get(Context context) { //有且僅有一個單例對象 if (sXXLab == null) { sXXLab = new XXLab(context); } return sXXLab; } //返回單例所維護的內容列表 public List getXXs() { return mXXs; } }
QQ空間打賞紅包是手機QQ最近新推出的一個功能,這個打賞紅包功能可以讓你給QQ空間中發表優質內容的人打賞紅包,如果你看到好友發了一條說說可以試試這個QQ空間
如果我們在文件浏覽器中點擊一個文件,然後點擊它,會彈出一個列表給你選擇 如果使自己的應用也出現在這個列表上,必須在menifest的這個act
前幾天一同學項目中的某個功能需要ListView+EditText來實現,希望我給他寫個Demo,自己就隨手寫了一個小的Demo。後來想了想覺得這個功能其實挺常用的,而且
Service沒有UI,因為service是後台運行如:下載,網絡I/O 等等Service的生命周期從它被創建開始,到它被銷毀為止,onCrea