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(); }