十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
所使用的工具:电脑
在惠水等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、成都网站制作 网站设计制作定制开发,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站,成都外贸网站建设,惠水网站建设费用合理。
开发工具:eclipse for Android , Android Studio
用adapter 写下拉菜单需要我们自己进行自定义,具体步骤如下:
1、自定义类,类成员与需要显示的字段一致;
public class Manufacture {
private String name ;
public Manufacture(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2、自定义adapter并继承自BaseAdapter实现相应方法,下面是贴出的代码示例:
public class MnufactureAdapter extends BaseAdapter{
private ListManufacture mList;
private Context context ;
//创建有参构造,参数需要传入两个1.自定义类类型的List,上下文参数
public MnufactureAdapter(ListManufacture mList, Context context) {
super();
this.mList = mList;
this.context = context;
}
//返回长度位所定义List的长度
@Override
public int getCount() {
return mList.size();
}
//返回位置为自定义list当前位置
@Override
public Object getItem(int position) {
return mList.get(position)
;
}
//返回条目的ID
@Override
public long getItemId(int position) {
return position;
}
//这里getView需方法需要重点说明和注意:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//创建一个LayoutInflater并传入上下文
LayoutInflater linflater = LayoutInflater.from(context);
//添加自定义item布局到convertView;(item内容和样式通过自定义方式实现)
convertView = linflater.inflate(R.layout.spinner_item_layout, null);
//初始化Item中控件
TextView textView =(TextView) convertView.findViewById(R.id.manufacture_list);
//设置控件显示内容
textView.setText(mList.get(position).getName());
return convertView;
}
}
3、在activity中需要添加如下代码:
//初始化布局文件中的spinner
Spinner mSpinner = (Spinner) findViewById(R.id.spinner1);
//初始化自定义的List,并往里面添加数据
ListManufacture manufacture = new ArrayListManufacture();
接着就是添加数据,在项目中我是添加的从网络上下载的数据解析之后进行添加的,具体的添加方式根据具体需要进行添加,我把自己的贴在下面供大家参考:
for(int i = 0;ilist.size();i++){
//添加数据源
manufacture.add(new Manufacture(list.get(i).getName()));
}
//实例化一个之前自定义的adapter并向里面添加数据
MnufactureAdapter madapter = new MnufactureAdapter(manufacture, ProductManageActivity.this);
参数说明:第一个参数是添加数据源后的List,第二个是当前activity的上下文。
最后一步,向spinner里面添加数据源
mSpinner.setAdapter(madapter);
在UI中经常会使用到下拉列表,在android控件中有两个下拉列表控件:
在xml中添加控件的使用:
主题:
这些都没有达到我要的效果:
android:entries // 传入的是values文件夹下的arrayx.xml内的数据
android:spinnerMode //显示模式有popmenu和dialog两种
android:prompt //当显示模式为dialog时生效,作用为显示dialog的标题内容
这种情况应该是手机系统出现问题,需要在专业人士指导下刷机才能恢复,具体刷机方法为:
a、打开“刷机助手”官方网站,在页面中下载刷机助手。下载完成后安装并启动刷机助手。
b、用手机原装数据线将手机与电脑相连接,然后等待刷机助手完成初始化工作。待刷机助手成功识别手机后,可以点击“一键刷机”按钮开始刷机。
c、点击“浏览”按钮选择之前下载的刷机包,若没有下载可以使用刷机助手市场下载ROM包。选择手机对应的型号开始下载ROM。
d、选择刷机包后点击“下一步”按钮备份手机数据,以免数据丢失。备份开始前,在手机中允许刷机助手读取短信、联系人等记录。然后点击“刷机”按钮开始备份并刷机,慢慢等待刷机完成。
Android的下拉列表是用Spinner 这个类来实现的。
Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现),使用ArrayAdapter进行适配数据:
1:首先定义一个布局文件:
LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/
/LinearLayout
2:建立数据源,使用数组,这些数据将会在Spinner下来列表中进行显示:
?xml version="1.0" encoding="utf-8"?
resources
string-array name="spinnername"
item北京/item
item上海 /item
item广州/item
item深圳/item
/string-array
/resources
3:接着在Activity中加入如下的代码(使用了系统定义的下拉列表的布局文件,当然也可以自定义)
// 初始化控件
mSpinner = (Spinner) findViewById(R.id.spinner1);
// 建立数据源
String[] mItems = getResources().getStringArray(R.array.spinnername);
// 建立Adapter并且绑定数据源
ArrayAdapterString _Adapter=new ArrayAdapterString(this,android.R.layout.simple_spinner_item, mItems);
//绑定 Adapter到控件
mSpinner.setAdapter(_Adapter);
android 下拉菜单
1.?xml version="1.0" encoding="utf-8"?
12.LinearLayout xmlns: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=""
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.}
android5.0锁屏的下拉菜单:
1.下拉菜单是当自己选中一个选项后,选项会向下延伸出具有其它选项的另一个选项,这个功是可以关闭的。
2.待机情况下打开应用程序,然后选择设置打开。
3.然后打开显示选项,选择“锁屏和安全”打开。
4.接着就可以将下拉菜单前面的选项去掉,这样锁屏就不能下拉菜单了。
打开手机系统设置——锁屏与安全,可以设置关闭下拉菜单。
下拉菜单是当用户选中一个选项后,该选单会向下延伸出具有其 他选项的另一个选单。下拉式选单通常应用于把一些具有相同分类的功能放在同一个下拉式选单中,并把这个下拉式选单置于主选单的一个选项下。下拉菜单内的项 目可以据需要设置为多选或单选,可以用来替代一组复选框(设置为多选)或单选框(设置为单选)。
利用锁屏软件来保护自己的手机隐私。但手机锁屏与电脑锁屏相仿,有两种,一种是切断屏幕电源,一种是利用软件快速智能锁屏。