我在Android中使用AlertDialog.Builder来快速提示用户输入文本.该对话框显示并且工作正常,但用户必须单击EditText字段才能加载软键盘.有没有办法打开键盘,并在我的对话框打开时给焦点?这是我的代码:
final Map<String,Object> rowData = itemList.get(mPosition);
final EditText input = new EditText(searchList.getContext());
input.requestFocus();
input.setSingleLine();
final AlertDialog dialog = new AlertDialog.Builder(searchList.getContext())
.setTitle(StringUtils.getSafeString(rowData.get("label")))
.setView(input)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
rowData.put("value", StringUtils.getSafeString(input.getText()));
searchList.invalidateViews();
}
}).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Do nothing.
}
}).create();
dialog.show();
Run Code Online (Sandbox Code Playgroud) 我有一些清理需要在我的一个视图控制器被解除/弹出/卸载时在共享资源中执行?这可能是当用户点击该单个屏幕上的后退按钮或者调用popToRootViewController时(在这种情况下,我理想情况下可以清除弹出的每个控制器.)
显而易见的选择是在viewDidUnload中执行此操作,但当然,这不是卸载的工作原理.有没有办法捕获ViewController从堆栈中删除的所有情况?
编辑:忘了提到我正在使用Xamarin这样做,这可能会或可能不会影响答案.
在iOS应用程序上使用MonoDevelop,我需要开始将一些文件组织到子目录中.
我已经开始在项目的主目录中创建一个新的ViewControllers文件夹.主要是,我刚刚尝试将Xcode故事板创建的文件拖放到这个新文件夹中.这给了我文件丢失的错误,有时我不得不手动编辑故事板文件来删除或修复文件的位置.
虽然我已经取得了一些成功,但有时这也会导致故事板文件在Xcode中进行更改后没有更新designer.cs文件.
有没有人找到正确的方法来组织没有这些问题的大型项目?
我正在努力添加使用共享按钮的功能,以允许用户保存文件以用于我的主应用程序。需要支持多种文件类型(图像、视频、音频、pdf 等)。
一般用例是:用户使用标准相机应用程序拍照或使用语音备忘录应用程序进行录音。用户单击共享按钮并从共享列表中选择我的扩展程序。对话框打开,让用户有机会对文件进行描述。文件保存到我的主应用程序(包含应用程序)以后可以访问和处理的位置。
我已经能够到达提示我共享文件的地步,但是我无法找到一个位置来成功保存到我的主应用程序以后可以从中读取的位置。这甚至可能吗?有没有更好的方法来处理这种情况?
我目前正在使用 Xamarin 执行此操作,因此不支持调试(并且日志记录最少)。如果有人在目标 C 中有答案,那至少会帮助我指明正确的方向。
我有一个很大的用户列表在AlertDialog中显示为选择列表.这是我用来生成它的代码:
AlertDialog.Builder builder = new AlertDialog.Builder(thisContext);
builder.setTitle("User");
builder.setItems(userNames, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int pos) {
//selection processing code
}});
builder.setNeutralButton("Clear", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//clear processing code
}});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
dialog=builder.create();
//next line added as solution
dialog.getListView().setFastScrollEnabled(true);
dialog.show();
Run Code Online (Sandbox Code Playgroud)
userNames是数据库中的一个alphebetical名称列表.
然而,这在大多数情况下非常有效,因为我有超过100个或更多用户,滚动列表有点慢.如何添加快速滚动以便用户可以在需要时跳转到列表中的某个部分?
我正在考虑使用MonoTouch将我的应用程序从标准iOS Objective C转换为C#.
在我的Objective C代码中,我生成一个唯一标识符并将其保存到NSUserDefaults以验证和检查后续登录.这是我正在使用的方法:
- (NSString *) localUuid {
NSString * ident = [[NSUserDefaults standardUserDefaults] objectForKey:UUID];
if(!ident){
CFUUIDRef uuidRef = CFUUIDCreate(NULL);
CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef);
CFRelease(uuidRef);
ident = [NSString stringWithString:(__bridge_transfer NSString *)uuidStringRef];
[[NSUserDefaults standardUserDefaults] setObject:ident forKey:UUID];
[[NSUserDefaults standardUserDefaults] synchronize];
}
return ident;
}
Run Code Online (Sandbox Code Playgroud)
我在使用MonoTouch在C#中使用类似的东西时遇到了问题.
我还没有找到Mono可用的CFUUID_ _方法版本.
此外,虽然似乎有一个NSUserDefaults.StandardUserDefaults.SetValueForKey方法,但没有一个简单的GetValueForKey方法.
有没有更多经验的Monotouch知道更好的方法来做到这一点?