Ⅰ 我想在android中设置两个下拉菜单
android 下拉菜单
1.<?xml version="1.0" encoding="utf-8"?>
12.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
13. android:orientation="vertical" android:gravity="right"
14. android:layout_width="fill_parent" android:layout_height="fill_parent">
15.
19. <FrameLayout android:layout_height="wrap_content"
20. android:layout_width="fill_parent">
21. <TextView android:layout_width="wrap_content"
22. android:layout_height="wrap_content" android:text="FrameLayout">
23. </TextView>
24. <TextView android:layout_width="wrap_content"
25. android:layout_height="wrap_content" android:text="Frame Layout">
26. </TextView>
27. </FrameLayout>
28.
29. <TextView android:layout_width="wrap_content"
30. android:layout_height="wrap_content" android:text="@string/hello" />
31.
39. <TableLayout android:id="@+id/TableLayout01"
40. android:layout_width="fill_parent" android:layout_height="wrap_content"
41. android:collapseColumns="1">
42. <TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent"
43. android:layout_height="wrap_content">
44. <TextView android:layout_width="wrap_content"
45. android:layout_weight="1" android:layout_height="wrap_content"
46. android:text="行1列1" />
47. <TextView android:layout_width="wrap_content"
48. android:layout_weight="1" android:layout_height="wrap_content"
49. android:text="行1列2" />
50. <TextView android:layout_width="wrap_content"
51. android:layout_weight="1" android:layout_height="wrap_content"
52. android:text="行1列3" />
53. </TableRow>
54. <TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"
55. android:layout_height="wrap_content">
56. <TextView android:layout_width="wrap_content"
57. android:layout_height="wrap_content" android:text="行2列1" />
58. </TableRow>
59. </TableLayout>
60.
66. <AbsoluteLayout android:layout_height="wrap_content"
67. android:layout_width="fill_parent">
68. <TextView android:layout_width="wrap_content"
69. android:layout_height="wrap_content" android:text="AbsoluteLayout"
70. android:layout_x="100px"
71. android:layout_y="100px" />
72. </AbsoluteLayout>
73.
81. <RelativeLayout android:id="@+id/RelativeLayout01"
82. android:layout_width="fill_parent" android:layout_height="fill_parent">
83. <TextView android:layout_width="wrap_content" android:id="@+id/abc"
84. android:layout_height="wrap_content" android:text="centerInParent=true"
85. android:layout_centerInParent="true" />
86. <TextView android:layout_width="wrap_content"
87. android:layout_height="wrap_content" android:text="marginLeft=20px"
88. android:layout_marginLeft="20px" />
89. <TextView android:layout_width="wrap_content"
90. android:layout_height="wrap_content" android:text="xxx"
91. android:layout_below="@id/abc" android:layout_alignRight="@id/abc" />
92. </RelativeLayout>
93.
94.</LinearLayout>
95.
96.
97.res/values/strings.xml
98.<?xml version="1.0" encoding="utf-8"?>
99.<resources>
100. <string name="hello">Hello Layout</string>
101. <string name="app_name">webabcd_layout</string>
102.</resources>
103.
104.
105.Main.java
106.
107.代码
108.package com.webabcd.layout;
109.
110.import android.app.Activity;
111.import android.os.Bundle;
112.
113.public class Main extends Activity {
114. /** Called when the activity is first created. */
115. @Override
116. public void onCreate(Bundle savedInstanceState) {
117. super.onCreate(savedInstanceState);
118. setContentView(R.layout.main);
119. }
120.}
121.
122.
123.2、上下文菜单,选项菜单,子菜单
124.res/layout/main.xml
125.
126.代码
127.<?xml version="1.0" encoding="utf-8"?>
128.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
129. android:orientation="vertical" android:layout_width="fill_parent"
130. android:layout_height="fill_parent">
131.
132. <TextView android:id="@+id/txt1" android:layout_width="fill_parent"
133. android:layout_height="wrap_content" android:text="@string/hello_contextMenu" />
134.
135. <TextView android:id="@+id/txt2" android:layout_width="fill_parent"
136. android:layout_height="wrap_content" android:text="@string/hello_subMenu" />
137.
138.</LinearLayout>
139.
140.
141.res/values/strings.xml
142.
143.代码
144.<?xml version="1.0" encoding="utf-8"?>
145.<resources>
146. <string name="hello_contextMenu">Hello Context Menu</string>
147. <string name="hello_subMenu">Hello Context Sub Menu</string>
148. <string name="app_name">webabcd_menu</string>
149.</resources>
150.
151.
152.Main.java
153.
154.代码
155.package com.webabcd.menu;
156.
157.import android.app.Activity;
158.import android.os.Bundle;
159.import android.view.ContextMenu;
160.import android.view.Menu;
161.import android.view.MenuItem;
162.import android.view.SubMenu;
163.import android.view.View;
164.import android.view.ContextMenu.ContextMenuInfo;
165.import android.widget.TextView;
166.import android.widget.Toast;
167.
168.// 演示两种菜单的实现方式:上下文菜单(通过在某元素上长按,来呼出菜单)和选项菜单(通过按手机上的菜单按钮,来呼出菜单)
169.public class Main extends Activity {
170. /** Called when the activity is first created. */
171. @Override
172. public void onCreate(Bundle savedInstanceState) {
173. super.onCreate(savedInstanceState);
174. setContentView(R.layout.main);
175.
176. // 为 R.id.txt1 注册一个上下文菜单(在此 TextView 上长按,则会呼出上下文菜单)
177. // 具体呼出的菜单内容需要重写 onCreateContextMenu 来创建
178. TextView txt1 = (TextView) this.findViewById(R.id.txt1);
179. this.registerForContextMenu(txt1);
180.
181. // 为 R.id.txt2 注册一个上下文菜单
182. TextView txt2 = (TextView) this.findViewById(R.id.txt2);
183. this.registerForContextMenu(txt2);
184. }
185.
186. // 重写 onCreateContextMenu 用以创建上下文菜单
187. // 重写 onContextItemSelected 用以响应上下文菜单
188. @Override
189. public void onCreateContextMenu(ContextMenu menu, View v,
190. ContextMenuInfo menuInfo) {
191. super.onCreateContextMenu(menu, v, menuInfo);
192.
193. // 创建 R.id.txt1 的上下文菜单
194. if (v == (TextView) this.findViewById(R.id.txt1)) {
195.
196. // ContextMenu.setIcon() - 设置菜单的图标
197. // ContextMenu.setHeaderTitle() - 设置菜单的标题
198. menu.setHeaderIcon(R.drawable.icon01);
199. menu.setHeaderTitle("我是菜单");
200.
201. // 用 ContextMenu.add() 来增加菜单项,返回值为 MenuItem
202. // 第一个参数:组ID
203. // 第二个参数:菜单项ID
204. // 第三个参数:顺序号
205. // 第四个参数:菜单项上显示的内容
206. menu.add(1, 0, 0, "菜单1");
207.
208. // MenuItem - 新增菜单项后的返回类型,针对菜单项的其他设置在此对象上操作
209. menu.add(1, 1, 1, "菜单2").setCheckable(true);
210.
211. }
212. // 创建 R.id.txt2 的上下文菜单(多级上下文菜单)
213. else if (v == (TextView) this.findViewById(R.id.txt2)) {
214.
215. // ContextMenu.addSubMenu("菜单名称") - 用来添加子菜单。子菜单其实就是一个特殊的菜单
216. SubMenu sub = menu.addSubMenu("父菜单1");
217. sub.setIcon(R.drawable.icon01);
218. sub.add(0, 0, 0, "菜单1");
219. sub.add(0, 1, 1, "菜单2");
220. sub.setGroupCheckable(1, true, true);
221.
222. SubMenu sub2 = menu.addSubMenu("父菜单2");
223. sub2.setIcon(R.drawable.icon01);
224. sub2.add(1, 0, 0, "菜单3");
225. sub2.add(1, 1, 1, "菜单4");
226. sub2.setGroupCheckable(1, true, false);
227.
228. }
229. }
230.
231.
232. // 重写 onCreateOptionsMenu 用以创建选项菜单
233. @Override
234. public boolean onCreateOptionsMenu(Menu menu) {
235.
236. MenuItem menuItem = menu.add(0, 0, 0, "菜单111111111111111111111");
237.
238. // MenuItem.setIcon() - 设置菜单项的图标
239. // MenuItem.setTitleCondensed() - 菜单的简标题,如果指定了简标题的话,菜单项上的标题将会以此简标题为准
240. // MenuItem.setAlphabeticShortcut() - 设置选中此菜单项的快捷键
241. // 注:菜单项超过 6 个的话,第 6 个菜单将会变为 More 菜单,多余的菜单会在单击 More 菜单之后显示出来
242. menuItem.setIcon(R.drawable.icon01);
243. menuItem.setTitleCondensed("菜单1");
244. menuItem.setAlphabeticShortcut('a');
245.
246. menu.add(0, 1, 1, "菜单2").setIcon(R.drawable.icon02);
247. menu.add(0, 2, 2, "菜单3").setIcon(R.drawable.icon03);
248. menu.add(0, 3, 3, "菜单4");
249. menu.add(0, 4, 4, "菜单5");
250. menu.add(0, 5, 5, "菜单6");
251. menu.add(0, 6, 6, "菜单7").setIcon(R.drawable.icon04);
252. menu.add(0, 7, 7, "菜单8").setIcon(R.drawable.icon05);
253.
254. return true;
255. }
256.
257. // 重写 onOptionsItemSelected 用以响应选项菜单
258. @Override
259. public boolean onOptionsItemSelected(MenuItem item) {
260. super.onOptionsItemSelected(item);
261.
262. Toast.makeText(Main.this, "被单击的菜单项为:" + String.valueOf(item.getItemId()), Toast.LENGTH_SHORT).show();
263.
264. return false;
265. }
266.}
Ⅱ android 进度条样式 怎么改
Android系统提供了两大类进度条样式,长形进度条(progressBarStyleHorizontal) 和圆形进度条(progressBarStyleLarge)。
android 进度条样式更改:
第一种
(默认样式(中等圆形))
进度条用处很多,比如,应用程序装载资源和网络连接时,可以提示用户稍等,这一类进度条只是代表应用程序中某一部分的执行情况,而整个应用程序执行情况呢,则可以通过应用程序标题栏来显示一个进度条,这就需要先对窗口的显示风格进行设置"requestWindowFeature(Window.FEATURE_PROGRESS)"。
Ⅲ Android 模拟器中按菜单Menu键弹出菜单项MenuItem,点击菜单项中的“退出”没反应
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
/*
*
* add()方法的四个参数,依次是:
*
* 1、组别,如果不分组的话就写Menu.NONE,
*
* 2、Id,这个很重要,Android根据这个Id来确定不同的菜单
*
* 3、顺序,那个菜单现在在前面由这个参数的大小决定
*
* 4、文本,菜单的显示文本
*/
//图标文件实现android系统自带的文件
menu.add(Menu.NONE, Menu.FIRST + 1, 1, "保存").setIcon(android.R.drawable.ic_menu_save);
menu.add(Menu.NONE, Menu.FIRST + 2, 2, "添加").setIcon(android.R.drawable.ic_menu_add);
// menu.add(Menu.NONE, Menu.FIRST + 3, 3, "删除").setIcon(android.R.drawable.ic_menu_delete);
// menu.add(Menu.NONE, Menu.FIRST + 4, 4, "发送").setIcon(android.R.drawable.ic_menu_send);
menu.add(Menu.NONE, Menu.FIRST + 5, 5, "帮助").setIcon(android.R.drawable.ic_menu_help);
menu.add(Menu.NONE, Menu.FIRST + 6, 6, "退出").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case Menu.FIRST + 1:
Toast.makeText(WqtMainActivity.this, "保存菜单被点击了!", Toast.LENGTH_LONG).show();
//intent = new Intent(MenuActivity.this,Myhandler.class);
//startActivity(intent);
//overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
break;
case Menu.FIRST + 2:
Toast.makeText(WqtMainActivity.this, "添加菜单被点击了!", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 3:
Toast.makeText(WqtMainActivity.this, "删除菜单被点击了!", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 4:
Toast.makeText(WqtMainActivity.this, "发送菜单被点击了!", Toast.LENGTH_LONG).show();
//通知在状态栏显示的图标
//notification.icon = android.R.drawable.ic_lock_silent_mode_off;
//通知的内容
//notification.tickerText = "发送菜单被点击了!";
//通知时发出的声音
//notification.defaults = Notification.DEFAULT_SOUND;
//intent = new Intent(MenuActivity.this,mNotification.class);
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
//pendindIntent = PendingIntent.getActivity(MenuActivity.this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
//notification.setLatestEventInfo(MenuActivity.this, "按钮", "发送按钮", pendindIntent);
//notificationManager.notify(913, notification);
break;
case Menu.FIRST + 5:
Toast.makeText(WqtMainActivity.this, "帮助菜单被点击了!", Toast.LENGTH_LONG).show();
break;
case Menu.FIRST + 6:
AlertDialog alertDialog = new AlertDialog.Builder(WqtMainActivity.this)
.setTitle("提示!")
.setIcon(R.drawable.ask)
.setMessage("您确定要退出系统吗?")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.exit(0);
dialog.cancel(); //提示对话框关闭
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel(); //关闭对话框
}
}).create();
alertDialog.show();
break;
}
return super.onMenuItemSelected(featureId, item);
}
Ⅳ android开发怎么弄成,点击图标后弹出一个消息框。主界面不显示
这里报错是代码写法有误,建议一行一行代码的写。
具体实现代码:
1.创建对象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("请输入"); //设置对话框标题
builder.setIcon(android.R.drawable.btn_star); //设置对话框标题前的图标
2.创建EditText输入框
final EditText edit = new EditText(context);
3.将输入框赋值给Dialog,并增加确定取消按键
builder.setView(edit);
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你输入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点了取消", Toast.LENGTH_SHORT).show();
}
});
4.设置常用api,并show弹出
builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); //创建对话框
dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();
Ⅳ Android中menu菜单中的图片是怎么加进去的
给这个图片按钮添加一个事件, button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(当前Activity.this, 下一个Activity.class);
startActivity(intent);
当前Activity.finish();//关闭当前Activity
}
});
与普通按钮没有什么区别,一个就是有图片的,一个没有嘛,对它做事件都 一样,只不过显示效果不一样。
Ⅵ 如何获取android 进程信息
获取Android系统的可用内存和总内存是开发过程中常见的需求。通常,开发者会使用ActivityManager类来获取这些信息,然而这可能会导致数据不准确。一种更可靠的方法是读取//proc/meminfo文件,该文件详细记录了Android设备的各种信息,包括可用内存和总内存。
下面提供了一个示例代码来获取总内存大小:
public static long getTotalMemSize() { long size=0; File file = new File("/proc/meminfo"); try { BufferedReader buffer = new BufferedReader(new InputStreamReader(new FileInputStream(file))); String memInfo = buffer.readLine(); int startIndex = memInfo.indexOf(":"); int endIndex = memInfo.indexOf("k"); memInfo = memInfo.substring(startIndex + 1, endIndex).trim(); size = Long.parseLong(memInfo); size *= 1024; buffer.close(); } catch (java.io.IOException e) { e.printStackTrace(); } return size; }
此代码通过读取第一行数据并进行字符串处理来计算总内存大小。获取可用内存大小的方法类似,只是读取第二行数据。
接下来,获取内存中运行的应用信息。首先创建一个Bean文件用于存储这些信息。然后,通过ActivityManager的getRunningAppProcesses()方法获取一个RunningAppProcessInfo的List。遍历这个List,提取所需数据并存储在Bean文件中。
public static List getAllTask() { List taskList=new ArrayList<>(); List runList=UIUtils.getActManager().getRunningAppProcesses(); try { for (ActivityManager.RunningAppProcessInfo r:runList) { TaskBean taskBean = new TaskBean(); String processName = r.processName; taskBean.setPackageName(processName); PackageInfo packageInfo = UIUtils.getPacManager().getPackageInfo(processName, 0); taskBean.setIcon(packageInfo.applicationInfo.loadIcon(UIUtils.getPacManager())); taskBean.setName(packageInfo.applicationInfo.loadLabel(UIUtils.getPacManager()).toString()); Debug.MemoryInfo[] processInfo=UIUtils.getActManager().getProcessMemoryInfo(new int[]{r.pid}); taskBean.setMemSize(processInfo[0].getTotalPrivateDirty()*1024); if ((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)!=0){ taskBean.setSystem(true); }else { taskBean.setUser(true); } if (taskList != null) { taskList.add(taskBean); for (int i=0;i if (taskList.get(i).getPackageName().equals(Constants.PACKAGE_INFO)){ taskList.remove(i); } } } } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return taskList; }
上述代码遍历运行的程序并获取其中的信息。然后,根据应用的包名获取内存信息,设置内存大小,并通过PackageManager获取应用程序的信息。根据应用的标志判断是系统进程还是用户进程。
需要注意的是,从Android 5.0开始,谷歌弃用了通过上述方法获取进程信息。为此,可以使用新的方法获取进程信息。
public static List getTaskInfos() { List processInfos = ProcessManager.getRunningAppProcesses(); List taskinfos = new ArrayList(); // 遍历运行的程序,并且获取其中的信息 for (AndroidAppProcess processInfo : processInfos) { TaskBean taskinfo = new TaskBean(); // 应用程序的包名 String packname = processInfo.name; taskinfo.setPackageName(packname); // 湖区应用程序的内存 信息 android.os.Debug.MemoryInfo[] memoryInfos = UIUtils.getActManager() .getProcessMemoryInfo(new int[] { processInfo.pid }); long memsize = memoryInfos[0].getTotalPrivateDirty() * 1024L; taskinfo.setMemSize(memsize); taskinfo.setPackageName(processInfo.getPackageName()); try { // 获取应用程序信息 ApplicationInfo applicationInfo = UIUtils.getPacManager().getApplicationInfo( packname, 0); Drawable icon = applicationInfo.loadIcon(UIUtils.getPacManager()); taskinfo.setIcon(icon); String name = applicationInfo.loadLabel(UIUtils.getPacManager()).toString(); taskinfo.setName(name); if ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { // 用户进程 taskinfo.setUser(true); } else { // 系统进程 taskinfo.setSystem(true); } } catch (PackageManager.NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); // 系统内核进程 没有名称 taskinfo.setName(packname); Drawable icon = UIUtils.getContext().getResources().getDrawable( R.drawable.ic_launcher); taskinfo.setIcon(icon); } if (taskinfo != null) { taskinfos.add(taskinfo); for (int i=0;i if (taskinfos.get(i).getPackageName().equals(Constants.PACKAGE_INFO)){ taskinfos.remove(i); } } } } return taskinfos; }
此代码通过获取运行的程序信息并设置内存大小来获取应用信息。根据应用的标志判断是系统进程还是用户进程。
最后,通过判断Android系统的版本来选择合适的方法获取进程信息。如果系统版本大于21,则使用新的方法获取进程信息;否则,使用旧的方法。
Ⅶ android中的menu的背景颜色如何设置请指教
.Factory,但是细节不是太清楚,请指点。 在strings.xml里配下info的颜色,如果是代码生成的可以用这个menu.add(0, 1, 0, "确定").setIcon(R.drawable.info);不知道这样是否符合你的要求drawable是图片的目录,strings是一些文本的属性,你说的能具体点吗? 问题补充:sunquanfeng 写道引用sunquanfeng 写道 在strings.xml里配下info的颜色,如果是代码生成的可以用这个menu.add(0, 1, 0, "确定").setIcon(R.drawable.info);不知道这样是否符合你的要求 android工程里不是有个strings.xml文件么,里面是配置资源的,你配一个 <drawable name="info">#0000ff</drawable>,我说的不是目录,你配好了就可以引用啊您说的方法不能解决问题。
Ⅷ android如何创建带3个按钮的对话框
1.先在布局界面上,拖进来一个按钮控件,并设置显示的文字,记得保存(Ctrl+S)
之后在代码界面上定义该按钮。
2.新建一个按钮点击的方法。
onClick(View v) :点击之后的动作。
3.设置按钮的点击事件指向我们新建的点击方法。
setOnClickListener:设置点击之后触发的动作。
4.在onClick里添加弹出对话框的代码。
AlertDialog:一个对话框类。
MainActivity.this:对话框显示的位置。
setTitle:设置标题。
setMessage:设置内容。
setPositiveButton:设置对话框的按钮。
show():显示对话框。
至此所有代码已经完成,编译并生成,在Android安卓虚拟机上显示如下。