編輯:關於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());
List xxs = 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 List mXXs;
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最近新推出的一個功能,這個打賞紅包功能可以讓你給QQ空間中發表優質內容的人打賞紅包,如果你看到好友發了一條說說可以試試這個QQ空間
android中activity可以響應外部的action的例子(可以用這個來導入外部文件)
如果我們在文件浏覽器中點擊一個文件,然後點擊它,會彈出一個列表給你選擇 如果使自己的應用也出現在這個列表上,必須在menifest的這個act
小心!Listview結合EditText使用實例中遇到的那些坑
前幾天一同學項目中的某個功能需要ListView+EditText來實現,希望我給他寫個Demo,自己就隨手寫了一個小的Demo。後來想了想覺得這個功能其實挺常用的,而且
android開發 - Service服務
Service沒有UI,因為service是後台運行如:下載,網絡I/O 等等Service的生命周期從它被創建開始,到它被銷毀為止,onCrea