① android開發如何實現折疊菜單類似qq分組
用ExpandableListView來實現,可以設置其中的子ListView是展開還是閉合
一、ExpandableListView介紹
一個垂直滾動的顯示兩個級別(Child,Group)列表項的視圖,列表項來自ExpandableListAdapter 。組可以單獨展開。
1.重要方法
expandGroup (int groupPos) :在分組列表視圖中 展開一組,
setSelectedGroup (int groupPosition) :設置選擇指定的組。
setSelectedChild (int groupPosition, int childPosition, boolean shouldExpandGroup) :設置選擇指定的子項。
getPackedPositionGroup (long packedPosition) :返回所選擇的組
getPackedPositionForChild (int groupPosition, int childPosition) :返回所選擇的子項
getPackedPositionType (long packedPosition) :返回所選擇項的類型(Child,Group)
isGroupExpanded (int groupPosition) :判斷此組是否展開
2.代碼:
ExpandableListContextMenuInfo menuInfo=(ExpandableListContextMenuInfo)item.getMenuInfo();
String title=((TextView)menuInfo.targetView).getText().toString();
int type=ExpandableListView.getPackedPositionType(menuInfo.packedPosition);
if (type==ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
int groupPos =ExpandableListView.getPackedPositionGroup(menuInfo.packedPosition);
int childPos =ExpandableListView.getPackedPositionChild(menuInfo.packedPosition);
二、ExpandableListAdapter
一個介面,將基礎數據鏈接到一個ExpandableListView。 此介面的實施將提供訪問Child的數據(由組分類),並實例化的Child和Group。
1.重要方法
getChildId (int groupPosition, int childPosition) 獲取與在給定組給予孩子相關的數據。
getChildrenCount (int groupPosition) 返回在指定Group的Child數目。
2.代碼
public class MyExpandableListAdapter extends BaseExpandableListAdapter {
// Sample data set. children[i] contains the children (String[]) for groups[i].
public String[] groups = { "我的好友", "新疆同學", "親戚", "同事" };
public String[][] children = {
{ "胡算林", "張俊峰", "王志軍", "二人" },
{ "李秀婷", "蔡喬", "別高", "餘音" },
{ "攤派新", "張愛明" },
{ "馬超", "司道光" }
};
public Object getChild(int groupPosition, int childPosition) {
return children[groupPosition][childPosition];
}
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
public int getChildrenCount(int groupPosition) {
return children[groupPosition].length;
}
public TextView getGenericView() {
// Layout parameters for the ExpandableListView
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, 64);
TextView textView = new TextView(ExpandableListDemo.this);
textView.setLayoutParams(lp);
// Center the text vertically
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
// Set the text starting position
textView.setPadding(36, 0, 0, 0);
return textView;
}
public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
View convertView, ViewGroup parent) {
TextView textView = getGenericView();
textView.setText(getChild(groupPosition, childPosition).toString());
return textView;
}
public Object getGroup(int groupPosition) {
return groups[groupPosition];
}
public int getGroupCount() {
return groups.length;
}
public long getGroupId(int groupPosition) {
return groupPosition;
}
public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parent) {
TextView textView = getGenericView();
textView.setText(getGroup(groupPosition).toString());
return textView;
}
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
public boolean hasStableIds() {
return true;
}
}
參考自:http://blog.csdn.net/gyflyx/article/details/6461242
② Android studio怎麼展開/折疊代碼注釋
在window7平台下,使用如下的辦法對Android studio對注釋和代碼進行展開/折疊。
1、如下圖,可以看到Android studio的編輯器當中有一段的注釋的代碼的選項。
③ android studio怎麼展開目錄結構
一、下載安裝 下載後,打開並將Android Studio拖動到Applications中去,拷貝完畢即可,可以到應用程序下將圖標拖動到Dock上。 二、新建工程 安裝完成後,選擇默認選項點擊OK即可: 進入Android Studio,開始界面和Xcode有點類似,點擊New project新建一個工程,新建過程和在Eclipse上差不多。 新建工程完畢後就進入了Android Studio主界面。第一次進去可能什麼也沒有,點擊箭頭所示按鈕目錄結構, 後可以看到Android Studio的目錄結構,和Eclipse的工程還是有一點區別的: 區別: 1.Android Studio的目錄結構本來就代表一個workspace,一個workspace裡面可以有Mole,可以將一個Mole理解成Eclipse中的一個Project; 2.目錄中將java代碼和資源文件(圖片、布局文件等)全部歸結為src,在src目錄下有一個main的分組,同時劃分出java和res兩個Group,res和Eclipse下的結構一樣,java下就是源碼的包和類文件; 3.新建文件方式的不同,右鍵選擇New或Command+N後出現新建菜單,類型有Java Class,也就是一般的java類,File就是普通文件,Package就是建包,值得注意的就是Android Component,它直接提供了Android中基本組件的創建。 可以選擇創建Android中不同類型的組件: 三、窗口布局及主題介紹 另外,主界面底部有一個名為Android的選項卡,打開可以看到DDMS中的設備信息和Logcat輸出: 頂部工具欄中可以看到和Eclipse中功能一樣的一個選項,這些相信大家都比較熟悉了: 最後需要說明的是,大家看到我的主界面是暗色風格,和Google演示的是一樣的風格,大家第一次使用打開的是默認風格(亮色),如果想要修改的話,進入Preferences(按Command+,)到IDE Settings下選擇Colors&font並設置Schema name為Darcula就可以設置成暗色風格,如果需要自己定義樣式,比如字體大小顏色等,可以新建一個Schema來自己定義 四、布局文件編寫(實時預覽) 最炫的功能要來了,實時編寫並預覽布局文件,此項功能著實大大提高開發效率,打開一個xml布局文件點擊右側Preview選項卡即可喚出預覽界面,可以選擇很多尺寸的手機進行預覽: 同時,還可以同時預覽多種不同型號和尺寸的設備,編寫代碼的同時適配多種機型,這不就是當初夢寐以求的嘛! 上面介紹了Android Studio的基本使用,包括安裝、新建工程、工程結構以及主題設置。下面介紹一些其他技巧,以及與Eclipse之前的一些對比。需要重申一下,我所有的操作與版本是基於Mac系統,在Windows上的同學基本類似,下面就分主題開始吧: 一、從Eclipse導入工程到Android Studio 根據官方的介紹,Android Studio可以兼容Eclipse的現有工程,但需要做一些操作: 首先升級ADT到最新版本,目前為版本號為22(注意和ADT相關的組件最好一並升級,避免後期可能出現的錯誤) 選擇需要從Eclipse導出的工程,右鍵選擇Export並選擇Android下的Generate Gradle Build Files 選擇完畢後並不會導出到其他地方,而是在本地工程生成了一個build.gradle文件,在Eclipse工程中也可以看到,這個文件是Android Studio識別的 3.隨後進入Android Studio並選擇Import Project,可以看到剛剛在Eclipse中的項目圖標變成了一個Android機器人圖標,說明轉換成功,這時候選擇工程導入即可: 至此,就完成了從Eclipse導入現有Android工程到Android Studio,現在可以開始對工程進行操作了! 二、Eclipse工程與Android Studio的區別 Eclipse工程可以導入Android Studio運行,而反過來在Android Studio建立的工程不能在Eclipse中運行; 二者的工程結構不一樣,在Eclipse中一個Project就代表一個項目工程,而在Android Studio中就和Intellij一樣,一個Project代表一個工作空間,相當於Eclipse中的workspace,而在Android Studio中一個Mole就相當於Eclipse中的一個Project,這個概念需要弄明白,不要混了或覺得糊塗了。 在編輯操作上,在Eclipse中編輯修改後必須手動command+s保存文件,而在Android Studio中就和Intellij一樣是自動保存的,這一點和第二點和Xcode也是類似的。 工程目錄上的區別,在Eclipse中src部分一般是java文件,res部分是資源文件,包括布局文件和多媒體資源等。在Android Studio中 包括java文件和資源文件全部放到了src目錄下,src目錄下包括一個main文件夾,再下面就是java文件夾和res文件夾,其實這里,java文件夾就相當於Eclipse中的src,res還是那個res,這里想起了本山老師的小品「src已經不是那個src了,res還是那個res」 三、真機運行以及常用快捷鍵 在Android Studio中點擊界面下方的Android選項卡可以看到Device信息和Logcat,連上設備後打開Android選項卡會檢測真機,成功後會顯示在Device中,點擊頂部的綠色小箭頭就可以開始運行工程了。有一點需要注意的是,運行時可以選擇模擬器也可以選擇真機,由於在Android Studio中運行工程的時候有一個Device優先順序選擇,如果不設置的話可能會出現只運行在模擬器上的現象,我們可以自行設置一下:先點擊Run菜單選擇Run Configuration,並選擇你想選擇的目標設備,可以是模擬器和真機,也可以在運行選由用戶選擇: 快捷鍵大家可以對照官方文檔進行熟悉,如下表,也可以自己修改配置選項進行自定義: 個人覺得Android Studio還是有一定的前景的,這里就需要Google不斷進行完善和改進了,趕緊把大家從Eclipse中解救出來吧。另外,在此期間,大家其實可以嘗試使用一下Intellij IDEA,這個默認也是集成Android開發環境的。Android Studio是基於前者改進而來,二者在使用上差不多,也是Eclipse的一個不錯的替代者。