在android中,我不确定我是否完全理解这个R课程.我正在浏览数独的例子,我有这段代码:
switch (v.getId()) // the id of the argument passed is evaluated by switch statement
{
case R.id.about_button: //
Intent i = new Intent(this, about.class);
startActivity(i);
break;
// More buttons go here (if any) ...
}
Run Code Online (Sandbox Code Playgroud)
我是Java的新手,但从我收集的内容看起来它正在接受输入(触摸屏触摸按钮)并评估参数.然后,如果识别出about按钮,则设置case语句,并创建新的界面屏幕,然后导航到手机上.
这是正确的吗?
如果我得到了正确的要点,为什么与"R"类交易呢?
为什么要调用它来识别按钮的ID?
我认为超类(在这个项目中)是SudokuActivity类.
首先让我说我是Android编程的新手.我正在使用Pragmatic的Hello Android书(第3版).我正在研究流行的数独游戏示例,在复制了要放在main.xml文件中的书中的代码后,我收到以下错误:
error: Error: No resource found that matches the given name (at 'background' with value '@color/background')
.
error: Error: No resource found that matches the given name (at 'text' with value '@string/main_title').
error: Error: No resource found that matches the given name (at 'text' with value '@string/continue_label').
error: Error: No resource found that matches the given name (at 'text' with value '@string/new_game_label').
error: Error: No resource found that matches the given name (at 'text' with value '@string/about_label').
error: Error: …Run Code Online (Sandbox Code Playgroud) 我正在尝试在运行时通过Objective-C创建一个SQLite3数据库文件.我正在尝试创建一个名为"tblStore"的表.我希望字段名称被称为"strStoreNumber"和"strStoreReg".我是iOS和SQLite的新手,所以我很难找到执行此操作的语法.除了创建表之外,我希望创建的表不驻留在应用程序包中,而是将其驻留/存储在手机上的某个位置.该表需要是可读/可写的.我已经对"用户沙箱"以及"文档目录"进行了一些阅读.我不确定我是否理解两者之间的区别.理想情况下,我的应用程序将使用一个按钮从文本字段中获取输入.将文本字段的输入放入字符串后,将进行检查以查看我的"tblStore"SQLite表是否存在,如果不存在,则将创建该表.
回顾一下:1.Obj-C/SQLite使用"strStoreNumber"和"strStoreReg"字段创建名为"tblStore"的表的语法是什么?2. db文件应驻留在哪里?我需要读取和写入tblStore db文件.3."用户沙箱"和"文档目录"之间有什么区别?
这就是我目前所拥有的:
-(IBAction)setInput:(id)sender
{
NSString *strStoreNumber;
NSString *strRegNumber;
NSString *tableName = @"tblStore";
NSString *dbStrStore = @"strStore";
NSString *dbStrReg = @"strReg";
strStoreNumber = StoreNumber.text;
strRegNumber = RegNumber.text;
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths lastObject];
NSString* databasePath = [documentsDirectory stringByAppendingPathComponent:@"tblStore.sqlite"];
// NSString* databasePath = [[NSBundle mainBundle] pathForResource:@"tblStore" ofType:@"sqlite"];
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
NSLog(@"Opened sqlite database at %@", databasePath);
char *err;
NSString *sql = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('%@' TEXT PRIMARY …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个应用程序,其中我将使用两个文本字段进行输入.从文本字段获取的输入正在初始化为字符串.所以我想要完成的是:
我意识到这是非常具体的,但我一直很难找到任何简单的方法来实现这一目标.我对iOS开发非常陌生,如果有人能够尽可能具体和详细,我会感激,或者至少指出一些可以教会我如何实现这一目标的资源.
我正在使用Xcode v4.3.2,我不使用Storyboard或ARC.我试图尽可能详细,但尽可能地,我的目标非常简单.
我被挖掘出来,我很感激能得到的所有帮助.
谢谢!-Matt
我正在使用数字键盘来输入UITextField.我注意到Interface Builder有一个名为"Done"的返回键属性.当我在返回键选项下选择"完成"时,我没有看到在数字键盘上创建了完成按钮.如果我将其从数字键盘更改为其他键盘类型,我会在其他键盘类型上看到"完成"按钮,但在使用数字键盘时则不会.
提前致谢!
我试图使用一个按钮从一个视图(XIB)转到另一个视图.我正在使用Xcode 4.3.2和iOS 5.我首先创建项目(Single View Application).然后我在Interface Builder中创建我的按钮,在头文件中创建我的插座,在.m文件中创建我的IBAction.接下来,我右键单击Xcode中的项目文件夹并选择"新建文件".然后我选择了"Object-C Class"并将其命名为"SecondViewController".创建了两个新文件,"SecondViewController.h"和"SecondViewController.m".然后我回去右键单击Xcode中的项目文件夹,选择"新建文件",然后从"用户界面"选项中选择"查看".
现在我有我的空IBAction(我的按钮),我想用它去一个新的视图,叫做SecondViewController.xib.
如果到目前为止创建新的XIB和.h/.m文件是正确的,那么我将如何使用我的按钮"转到"或显示我的第二个视图?请记住,我仍然处于初级水平,我感谢任何帮助和耐心:)
我可以在主View和我的SecondView之间区分的唯一区别是在头文件中:
主视图头文件:
@interface ButtonToNewViewViewController : UIViewController
Run Code Online (Sandbox Code Playgroud)
第二个View头文件:
@interface SecondViewController : NSObject
Run Code Online (Sandbox Code Playgroud)
IBAction为:
-(IBAction)nextView:(id)sender
{
// go to new view
}
Run Code Online (Sandbox Code Playgroud) 我已经坚持这个问题几天了,似乎越来越接近一个决议(在伟大的用户@ SO的帮助下).我正在使用CocoaAsyncSocket库来创建到Windows服务器的TCP套接字连接.
我的appDelegate正在建立连接:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
socket = [[AsyncSocket alloc] initWithDelegate:self];
NSError *error = nil;
if (![socket connectToHost:@"199.5.83.63" onPort:11005 error:&error])
{
NSLog(@"Error connecting: %@", error);
}
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[tekMatrixViewController alloc] initWithNibName:@"tekMatrixViewController" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我有一个名为onSocket的连接方法(库的一部分):( AsyncSocket*)sock didConnectToHost:(NSString*)主机端口:(UInt16)端口:
- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port
{
NSLog(@"connected :D");
}
Run Code Online (Sandbox Code Playgroud)
正在调用此方法,因为我可以看到NSLOG的输出并且我已成功连接.我还可以从Windows机器上看到连接成功(使用日志文件).
我还测试了另一个委托方法也被调用:
- (void)onSocket:(AsyncSocket *)sock …Run Code Online (Sandbox Code Playgroud) 我目前有一个存在的表,我可以从中提取数据.我想要做的是检查表中是否已经存在表,如果没有,我想创建表并将其保存到bundle(意味着路径将在主包中).我希望在setInput方法的顶部检查和创建数据库.我一直在寻找与此类似的东西,但我还没有想出任何东西.非常感谢任何帮助.这是我的代码:
-(IBAction)setInput:(id)sender
{
NSString *strStoreNumber;
NSString *strRegNumber;
strStoreNumber = StoreNumber.text;
strRegNumber = RegNumber.text;
lblStoreNumber.text = strStoreNumber;
lblRegNumber.text = strRegNumber;
NSString* databasePath = [[NSBundle mainBundle] pathForResource:@"tblStore" ofType:@"sqlite"];
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
NSLog(@"Opened sqlite database at %@", databasePath);
sqlite3_exec(database, "CREATE TABLE IF NOT EXISTS tblStore (ID INTEGER PRIMARY KEY AUTOINCREMENT, Message TEXT)", NULL, NULL, NULL);
//...stuff
}
else
{
NSLog(@"Failed to open database at %@ with error %s", databasePath, sqlite3_errmsg(database));
sqlite3_close (database);
}
//
NSString *querystring;
// create your statement …Run Code Online (Sandbox Code Playgroud) ios ×6
iphone ×3
sqlite ×3
android ×2
java ×2
cocoa-touch ×1
delegates ×1
eclipse ×1
objective-c ×1
uikit ×1
uitextfield ×1
view ×1