編輯:Android開發實例
在Android的app包中,有這麼一個類,這個類繼承自Activity,它叫ExpandableListActivity。顧名思義,從它的名字可以看出該類是一種可擴展性的列表List,我們這裡理解成可伸縮的列表,也就是通過繼承ExpandableListActivity 可以實現列表的可展開/收縮的功能。
在介紹之前我們先看下程序的運行結果,如下圖所示。
本文我們主要介紹這種列表的顯示是如何實現的,在ListActivity的使用中,我們知道一旦繼承了ListActivity,該類就意味這具備了List的功能,同樣的,我們將一個類繼承了ExpandableListActivity,就可以直接調用該類本身的ExpandableList對象,並直接賦予一個自定義的適配器setListAdapter(adapter);,因此,整個實現的重心放在如何設計這個適配器上面,以下是適配器的一個舉例。
public class mExpandableListAdapter extends BaseExpandableListAdapter {
// 父列表數據
private String[] groups =
{
“隨時隨地”,
“即興時代”,
“FENGFLY.COM”,
};
// 子列表數據
private String[][] children =
{
{ “即興” },
{ “隨時隨地”, “即興時代” },
{ “隨時隨地”, “即興時代”, “FENGFLY.COM” },
};
@Override
public Object getChild(int groupPosition, int childPosition) {
return children[groupPosition][childPosition];
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public int getChildrenCount(int groupPosition) {
return children[groupPosition].length;
}
// 取子列表中的某一項的 View
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
TextView textView = getGenericView();
textView.setText(getChild(groupPosition, childPosition).toString());
return textView;
}
@Override
public Object getGroup(int groupPosition) {
return groups[groupPosition];
}
@Override
public int getGroupCount() {
return groups.length;
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
//父列表中的某一項的View
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
TextView textView = getGenericView();
textView.setText(getGroup(groupPosition).toString());
return textView;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
//獲取某一項的View
private TextView getGenericView() {
TextView textView = new TextView(_ExpandableList.this);
return textView;
}
}
可以看出,在實現可伸縮列表上,我們需要集中精神把重頭戲放在這個適配器上面。
前面walfred已經介紹了使用apktool對apk進行逆向編譯,通過apktool我們的確可以反編譯已經序列化後的AndroidManifest.xml和資源
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
Android SDK提供了很多示例程序,從這些示例代碼的閱讀和試驗中能夠學習