1、运行模拟器并成功开机进入待机界面
2、点击PC开始菜单里面的“运行”输入cmd
3.进入android SDK 的platform_tools.(网上提供的方法多数在tools文件下,跟我这个不太一样~)
4.adb install xxx.apk(完整路径,可以直接把包拖到命令行中。)
UITableView 详细讲解
DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)];
[DataTable setDelegate:self];
[DataTable setDataSource:self];
[self.view addSubview:DataTable];
[DataTable release];
二、UITableView各Method说
//Section总数
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
return TitleData;
}
// Section Titles
//每个section显示的标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return @"";
}
//指定有多少个分区(Section),默认为1
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 4;
}
//指定每个分区中有多少行,默认为1
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
}
//绘制Cell
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
SimpleTableIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier: SimpleTableIdentifier] autorelease];
}
cell.imageView.image=image;//未选cell时的图片
cell.imageView.highlightedImage=highlightImage;//选中cell后的图片
cell.text=//.....
return cell;
}
//行缩进
-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{
NSUInteger row = [indexPath row];
return row;
}
//改变行的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 40;
}
//定位
[TopicsTable setContentOffset:CGPointMake(0, promiseNum * 44 + Chapter * 20)];
//返回当前所选cell
NSIndexPath *ip = [NSIndexPath indexPathForRow:row inSection:section];
[TopicsTable selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionNone];
[tableView setSeparatorStyle:UITableViewCellSelectionStyleNone];
//选中Cell响应事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];//选中后的反显颜色即刻消失
}
//判断选中的行(阻止选中第一行)
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger row = [indexPath row];
if (row == 0)
return nil;
return indexPath;
}
//划动cell是否出现del按钮
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
}
//编辑状态
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
[topicsTable setContentSize:CGSizeMake(0,controller.promiseNum * 44)];
//右侧添加一个索引表
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
}
//返回Section标题内容
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
}
//自定义划动时del按钮内容
- (NSString *)tableView:(UITableView *)tableView
titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
//跳到指的row or section
[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO];
三、在UITableViewCell上建立UILable多行显示
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
UILabel *Datalabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 320, 44)];
[Datalabel setTag:100];
Datalabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[cell.contentView addSubview:Datalabel];
[Datalabel release];
}
UILabel *Datalabel = (UILabel *)[cell.contentView viewWithTag:100];
[Datalabel setFont:[UIFont boldSystemFontOfSize:18]];
Datalabel.text = [data.DataArray objectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
//选中cell时的颜色
typedef enum {
UITableViewCellSelectionStyleNone,
UITableViewCellSelectionStyleBlue,
UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle
//cell右边按钮格式
typedef enum {
UITableViewCellAccessoryNone, // don't show any accessory view
UITableViewCellAccessoryDisclosureIndicator, // regular chevron. doesn't track
UITableViewCellAccessoryDetailDisclosureButton, // blue button w/ chevron. tracks
UITableViewCellAccessoryCheckmark // checkmark. doesn't track
} UITableViewCellAccessoryType
//是否加换行线
typedef enum {
UITableViewCellSeparatorStyleNone,
UITableViewCellSeparatorStyleSingleLine
} UITableViewCellSeparatorStyle
//改变换行线颜色lyttzx.com
tableView.separatorColor = [UIColor blueColor];
添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
private TelephonyManager telMgr;
private SimpleAdapter listItemAdapter; // ListView的适配器
private ArrayList<HashMap<String, Object>> listItem; // ListView的数据源,这里是一个HashMap的列表
private ListView myList; // ListView控件
@SuppressWarnings("static-access")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone_info);
telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); /* 将取得的信息写入List中 *//* 取得手机电话号码 */
listItem = new ArrayList<HashMap<String, Object>>();
listItemAdapter = new SimpleAdapter(this, listItem,
R.layout.list_item4, new String[] { "title", "text" },
new int[] { R.id.title, R.id.text });
myList = (ListView) findViewById(R.id.listView1);
myList.setAdapter(listItemAdapter);
if (telMgr.getLine1Number() != null) {
addItem("手机电话号码" ,telMgr.getLine1Number());
} else {
addItem("手机电话号码" ,"无法取得");
}
/* 取得电信网络国别 */
if (telMgr.getNetworkCountryIso().equals("")) {
addItem("电信网络国别" ,"无法取得");
} else {
addItem("电信网络国别" ,telMgr.getNetworkCountryIso());
}
/* 取得电信公司代码 */
if (telMgr.getNetworkOperator().equals("")) {
addItem("电信公司代码 " ,"无法取得");
} else {
addItem("电信公司代码 " ,telMgr.getNetworkOperator());
}
/* 取得电信公司名称 */
if (telMgr.getNetworkOperatorName().equals("")) {
addItem("电信公司名称" ,"无法取得");
} else {
addItem("电信公司名称 " ,telMgr.getNetworkOperatorName());
}
/* 取得行动通讯类型 */
if (telMgr.getPhoneType() == telMgr.PHONE_TYPE_GSM) {
addItem("行动通讯类型" ,"GSM");
} else {
addItem("行动通讯类型" ,"未知");
}
/* 取得网络类型 */
if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_EDGE) {
addItem("网络类型 " ,"EDGE");
} else if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_GPRS) {
addItem("网络类型" ,"GPRS");
} else if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_UMTS) {
addItem("网络类型" ,"UMTS");
} else if (telMgr.getNetworkType() == 4) {
addItem("网络类型" ,"HSDPA");
} else {
addItem("网络类型" ,"未知");
}
/* 取得漫游状态 */
if (telMgr.isNetworkRoaming()) {
addItem("漫游状态" ,"漫游中");
} else {
addItem("漫游状态" ,"无漫游");
}
/* 取得手机IMEI */
addItem("手机IMEI" ,telMgr.getDeviceId());
/* 取得IMEI SV */
if (telMgr.getDeviceSoftwareVersion() != null) {
addItem("IMEI号码" ,telMgr.getDeviceSoftwareVersion());
} else {
addItem("IMEI号码" ,"无法取得");
}
/* 取得手机IMSI */
if (telMgr.getSubscriberId() != null) {
addItem("手机IMSI号码" ,telMgr.getSubscriberId());
} else {
addItem("手机IMSI号码" ,"无法取得");
}
/* 取得ContentResolver */
ContentResolver cv = PhoneInfo.this.getContentResolver();
String tmpS = ""; /* 取得蓝芽状态 */
tmpS = android.provider.Settings.System.getString(cv,
android.provider.Settings.System.BLUETOOTH_ON);
if (tmpS.equals("1")) {
addItem("手机蓝牙状态" ,"已开启");
} else {
addItem("手机蓝牙状态" ,"未开启");
}
/* 取得WIFI状态 */
tmpS = android.provider.Settings.System.getString(cv,
android.provider.Settings.System.WIFI_ON);
if (tmpS.equals("1")) {
addItem("手机WIFI状态" ,"已开启");
} else {
addItem("手机WIFI状态" ,"未开启");
}
/* 取得飞行模式是否开启 */
tmpS = android.provider.Settings.System.getString(cv,
android.provider.Settings.System.AIRPLANE_MODE_ON);
if (tmpS.equals("1")) {
addItem("飞行模式" ,"开启中");
} else {
addItem("飞行模式" ,"未开启");
}
/* 取得数据漫游是否开启 */
tmpS = android.provider.Settings.System.getString(cv,
android.provider.Settings.System.DATA_ROAMING);
if (tmpS.equals("1")) {
addItem("数据漫游" ,"开启中");
} else {
addItem("数据漫游" ,"未开启");
}
}
private void addItem(String title, String str) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("title", title);
map.put("text", str);
listItem.add(map);
listItemAdapter.notifyDataSetChanged();
}