Ⅰ android 菜單列表用什麼做好,類似圖中的效果
1)最外圍的是一個Activity,頂部包含了一個View的容器,這個容器主要是裝載ToggleButton來實現諸如美團裡面的「美食,全城,理我最近,刷選」這一行。這一行一點就會彈出對應的下來菜單。
2)下拉菜單是如何實現的呢?,這里我們利用了PopupWindow來實現這一彈出式窗口。然後我們在彈出式窗口裡面再定義我們的下來列表項,是單列還是二級菜單,都是由裡面來定。
3)不同的菜單,需要一級或者需要二級,在這里根據我的需求而變動。我們在PopupWindow上面加一個自定義的LeftView,或者是MiddleView,RightView。主要是一個ToggleButton,你彈出一個窗口,你就定製一個窗口。
3)視圖裡面嵌入ListView,就形成了列表項。
Ⅱ Android中怎麼實現底部菜單欄
一共兩種實現方式:
方式一:java代碼實現
@Override
public boolean onCreateOptionsMenu(Menu menu) {
/**
* 參數1:組的id
* 參數2:菜單的id
* 參數3:排列的順序
* 參數4:顯示菜單的文本
*/
menu.add(0, 0, 0, "你好");
menu.add(1, 1, 1, "不好");
return super.onCreateOptionsMenu(menu);
}
/**菜單的點擊事件*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case 0:
Toast.makeText(this, "你選擇你好", Toast.LENGTH_LONG).show();
break;
case 1:
Toast.makeText(this, "你選擇不好", Toast.LENGTH_LONG).show();
break;
}
}
方式二:xml形式的菜單
步驟一:在res/menu目錄下新建xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.lifei.menu.MainActivity" >
<item
android:id="@+id/delete_menu_item"
android:orderInCategory="20"
android:title="@string/deletemunu"/>
<item
android:id="@+id/add_menu_item"
android:orderInCategory="19"
android:title="@string/addmunu">
<menu>
<item
android:id="@+id/add_user_item"
android:orderInCategory="30"
android:title="@string/adser"/>
<item
android:id="@+id/add_phone_item"
android:orderInCategory="31"
android:showAsAction="never"
android:title="@string/addhpone"/>
</menu>
</item>
</menu>
步驟二:在activity中
@Override
public boolean onCreateOptionsMenu(Menu menu) {
/**xml形式的menu菜單*/
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
點擊事件與方式一是一樣的
Ⅲ android 如何實現 省份,城市級聯菜單
Android實現省份城市級聯菜單的方法:
1、下載的資料庫 db_weather.db 放到sdcard/weather 目錄下面 方便後續操作
2、使用 SQLite Database Browser 可以打開資料庫 查看數據 和表等信息
3、了解了表的構成可以實現操作了androidManifest.xml配置文件聲明 添加操作sdcard 許可權
4、布局文件main.xml主要使用兩個 spinner 分別實現城市 省份的選擇
Ⅳ android中怎麼創建菜單條
你只建了菜單,未設置點擊菜單後怎麼做。
如下面一個例子:
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class Menu_Test extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(0, 0, 0, R.string.app_about);
menu.add(0, 1, 1, R.string.str_exit);
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(MenuItem item)
{
super.onOptionsItemSelected(item);
switch(item.getItemId())
{
case 0:
openOptionsDialog();
break;
case 1:
finish();
break;
}
return true;
}
private void openOptionsDialog()
{
new AlertDialog.Builder(this)
.setTitle(R.string.app_about)
.setMessage(R.string.app_about_msg)
.setPositiveButton(R.string.str_ok,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialoginterface, int i)
{
}
}
)
.show();
}
}
例子建了有兩個選擇的菜單。
其中,onOptionsItemSelected()是選擇處理,也就是你的程序所缺少的。
Ⅳ 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 如何讓應用程序在主菜單[launcher]程序列表分類顯示在各個屏中
需要向launcher發送創建桌面快捷的廣播,告訴android系統創建桌面圖標。
具體實現方式:
1.要在手機桌面上添加快捷方式,首先需要在manifest中添加許可權。
<!-- 添加快捷方式 -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<!-- 移除快捷方式 -->
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" /><!-- 查詢快捷方式 -->
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
2.添加快捷方式,是向桌面應用(launcher)發送相關action的廣播,相關的action如下:public static final String ACTION_ADD_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT";
3.調用以下代碼:
private void addShortcut(String name) {
Intent addShortcutIntent = new Intent(ACTION_ADD_SHORTCUT);
// 不允許重復創建
addShortcutIntent.putExtra("plicate", false);// 經測試不是根據快捷方式的名字判斷重復的
// 應該是根據快鏈的Intent來判斷是否重復的,即Intent.EXTRA_SHORTCUT_INTENT欄位的value
// 但是名稱不同時,雖然有的手機系統會顯示Toast提示重復,仍然會建立快鏈
// 屏幕上沒有空間時會提示
// 注意:重復創建的行為MIUI和三星手機上不太一樣,小米上似乎不能重復創建快捷方式
// 名字
addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
// 圖標
addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(MainActivity.this,
R.drawable.ic_launcher));
// 設置關聯程序
Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
launcherIntent.setClass(MainActivity.this, MainActivity.class);
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
addShortcutIntent
.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launcherIntent);
// 發送廣播
sendBroadcast(addShortcutIntent);
}
4.如果要創建多個,只需要調用多次即可
Ⅶ android應用開發中,如何讓自製的設置菜單列表和系統設置列表的樣式保持一致,當主題更改時也能跟著變化
自己定義一個布局(和系統的菜單一樣) 然後攔截menu事件 彈出就可以了 自定義menu
步驟:
1) 覆寫onCreateOptionsMenu(),返回值改為false
public boolean onCreateOptionsMenu(
Menu menu) {
return false;
}
2) 創建 */
View contentView = LayoutInflater.from(this).inflate(R.layout.menu,
null);
view = contentView.findViewById(R.id.view);
view.setOnClickListener(this);
/**
* 創建彈出的會話框 contentView 是會話框顯示的View 寬 ,高
*/
optionMenu = new PopupWindow(contentView, LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
3) 顯示菜單
mOptionsMenu.showAtLocation(
findViewById(R.id.main),
Gravity.BOTTOM, 0, 0);
Ⅷ 安卓要實現分組列表菜單,選擇哪個組件
ExpandableListView
http://www.jianshu.com/p/9fa82c15fe1e