我是一名软件开发人员.我已经使用了mysql多年,现在我将在项目中第一次遇到oracle.
我刚刚被告知我应该小心,在某些情况下,sql行为完全不同.我不知道会发生什么.我主要是寻找明显的东西和典型的初学者错误.
例如,我被告知oracle没有自动增量.
这就是我要找的东西.我将不胜感激任何有助于避免为已经解决的问题创建新解决方案的进一步知识.
我对偏好的第一次尝试是不知情的PreferenceActivity.所以现在我有一个应用程序将所有用户首选项存储在特定的首选项文件中.
我想迁移到使用PreferenceActivity但我也希望我的用户保持他们的偏好.
有没有办法告诉我的PreferenceActivity将该特定文件用于所有首选项?
我正在编写一个需要用相机拍摄的照片的应用程序.当我尝试拍摄实际照片时会出现问题.这是困扰我的代码:
final ShutterCallback shutterCallback = new ShutterCallback() {
@Override
public void onShutter() {
Log.d(TAG, "onShutter");
}
};
final PictureCallback callback = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.d(TAG, "onPictureTaken - jpeg");
try {
//async task for storing the photo
new SavePhotoTask(CameraView.this.ctx, data).execute();
} catch (final SavePhotoException e) {
//some exceptionhandling
}
}
};
this.camera = Camera.open();
this.camera.setPreviewDisplay(surfaceHolder);
final Camera.Parameters parameters = findBestParameters(w, h);
this.camera.setParameters(parameters);
this.camera.startPreview();
Log.d(TAG, "takePicture now!");
this.camera.takePicture(shutterCallback, null, callback);
Run Code Online (Sandbox Code Playgroud)
在模拟器上它似乎工作但在我的手机上(摩托罗拉Defy - 安卓2.1).
实际问题:在手机上,picturecallback永远不会发生"onPictureTaken"永远不会被调用.Shuttercallback被执行但是另一个没有(我尝试使用raw而不是jpeg,同样的事情). …
我有一个ListView显示sqlite数据库中的数据.我扩展CursorAdapter到这样做.我的下面的代码ListActivity有一个大问题:它将光标移到了CursorAdapter
private boolean refreshListView() {
final boolean result;
SqliteHelper sqliteHelper = new SqliteHelper(this);
sqliteHelper.open();
final Cursor cursor = sqliteHelper.fetchAll();
if (cursor.getCount() == 0) {
//handling some stuff
} else {
startManagingCursor(cursor);
final MyCursorAdapter measures = new MyCursorAdapter(this, cursor);
setListAdapter(measures);
result = true;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我注意到这段代码导致频繁的IllegalStateExceptions"SQLiteDatabase创建并且从未关闭".
我试图通过关闭数据库连接来解决这个问题.但是,如果我从这个方法关闭它,我得到的SQLiteMisuseException是我的猜测是由适配器仍然在工作,仍然需要光标?
我也试过关闭数据库onPause().然而,这并不能解决泄漏问题.
我不想要一个产生任何内存或其他泄漏的应用程序.但我不知道我做错了什么.我还没有发现任何回调或生命周期的方法,无论是ListActivity或CursorAdapter,给了我一个提示,我应该如何处理这个.
如果有任何关于如何解决这个问题的提示,我将不胜感激.我开始怀疑整个结构是错的.如果需要,我可以发布更多代码.
大多数应用都有某种偏好或用户设置,可以通过SharedPreferences存储.我为用户编辑其设置的第一个活动实现非常简单:几个输入字段和一个"保存"按钮.这既不漂亮也不容易扩展.
我见过的android系统设置和许多应用程序倾向于在ListViews中布局他们的首选项编辑.
我的第二种方法试图模仿这一点:ListActivity和每个项目必须提供它自己的布局,因为我想存储不同类型的值(一些是数字,一些是布尔单选按钮).
我发现实现这个很麻烦,现在我想知道我是否缺少一些明显的设计模式?
我正在尝试实现通过ajax WebPage交换内容的Breadcrumb Navigation Panel.
最终看起来像这样:
Home >> Page >> Panel
这是我的页面代码:
public MyPage() {
super();
contentContainer = new WebMarkupContainer("contentContainer");
contentContainer.setOutputMarkupId(true);
add(contentContainer);
contentContainer.add(content = createContentPanel());
breadCrumbContainer = new WebMarkupContainer("breadcrumbContainer");
breadCrumbContainer.setOutputMarkupId(true);
add(breadCrumbContainer);
final AjaxLink panelLink = new AjaxLink("panelLink") {
@Override
public void onClick(final AjaxRequestTarget target) {
replaceContentPanel(getOverviewPanel(), target);
}
@Override
public boolean isVisible() {
return !(content instanceof OverviewPanel);
}
};
breadCrumbContainer.add(panelLink);
panelLink.add(new Label("panelLabel", new Model<String>() {
@Override
public String getObject() {
//some dynamic content for example:
return contentPanel.getClass().getName();
}
})); …Run Code Online (Sandbox Code Playgroud) 请考虑以下注册:
<form wicket:id="form">
<div wicket:id="fooList">
<input wicket:id="fooList.quxField" type="text" size="10"/>
</div>
<button wicket:id="submit"><wicket:message key="submitText"/></button>
</form>
Run Code Online (Sandbox Code Playgroud)
而这两个类(我假设是二传手,吸气鬼等)
class FooClazz {
String quxField;
}
class BarClazz {
List<FooClazz> fooList;
}
Run Code Online (Sandbox Code Playgroud)
这个表单(模型包含在CompoundPropertyModel中):
class BarForm extends Form<BarClazz> {
public BarForm(String id,final IModel<BarClazz> model){
super(id,model);
add(new ListView<FooClazz>("fooList"){
@Override
protected void populateItem(final ListItem<FooClazz> item){
item.add(new TextField<String>("fooList.quxField"));
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在上面的代码为我生成了一个运行时异常:
2011-12-11 16:33:46 ERROR [org.apache.wicket.DefaultExceptionMapper] Unexpected error occurred org.apache.wicket.WicketRuntimeException: The expression 'quxField' is neither an index nor is it a method or field for the list class …Run Code Online (Sandbox Code Playgroud) 我们的主网站有一个检票口应用程序.最近我们实施了该网站的移动版本.移动版本的特殊之处在于它部署在一些移动设备的本机应用程序包装内,而不是通过链接连接到页面的其余部分,因为它不应该通常对Web用户可见.
移动页面使用ajax,因此在我们重新启动服务器上的应用程序时容易收到"页面过期"错误.
由于该页面未通过链接连接到应用程序的其余部分,因此我不希望我们的标准"页面已过期"行为.是否可以覆盖或拦截属于站点移动部分的页面的此行为?例如,我希望能够将页面配置为仅在"页面过期"错误时重新加载.
我正在尝试登录我的申请.首先,我抛出RestartResponseAtInterceptPageException(这是在我的BasePage上的WicketPanel中):
add(new Link<String>("signin") {
@Override
public void onClick() {
throw new RestartResponseAtInterceptPageException(SignIn.class);
}
});
Run Code Online (Sandbox Code Playgroud)
SignIn Page类包含登录的表单(内部私有类),具有以下提交按钮:
add(new Button("signinButton") {
@Override
public void onSubmit() {
final User user = model.getObject();
final boolean result = MySession.get().authenticate(user);
if (result) {
if (!continueToOriginalDestination()) {
setResponsePage(MySession.get().getApplication().getHomePage());
}
} else {
error("Authentication failed");
}
}
});
Run Code Online (Sandbox Code Playgroud)
单击此按钮并且用户成功通过身份验证后,我不会重定向到我单击signIn链接的页面,而是保留在SignIn页面上?我试过调试这个,但一直无法找出出错的地方.
我很高兴有任何暗示导致我发现我的方式错误.
顺便说一句,这是wicket 1.5.1.
小更新,因为我从答案中得到了我需要的提示,还有一些解释要做.解决方案如下所示:
add(new Link<String>("signin") {
@Override
public void onClick() {
setResponsePage(new SignIn(getPage()));
}
});
Run Code Online (Sandbox Code Playgroud)
在签到类获取一个构造函数,显然需要一个网页,我只是设置页与setResponsePage回到那里,我开始没有所有的continueToOriginalDestination和异常抛出.