我有一个编译为jar的库(不是sbt项目,只是jar文件),它在存储库中不可用.
有没有一种简单的方法可以直接在文件系统/项目中添加对jar的引用?
我希望能够使用Guice注入通用接口的通用实现.
public interface Repository<T> {
void save(T item);
T get(int id);
}
public MyRepository<T> implements Repository<T> {
@Override
public void save(T item) {
// do saving
return item;
}
@Override
public T get(int id) {
// get item and return
}
}
Run Code Online (Sandbox Code Playgroud)
在C#中使用Castle.Windsor,我可以做到:
Component.For(typeof(Repository<>)).ImplementedBy(typeof(MyRepository<>))
Run Code Online (Sandbox Code Playgroud)
但我不认为Guice中存在等价物.我知道我可以TypeLiteral在Guice 中使用来注册个人实现,但是有没有办法像Windsor那样一次注册它们?
编辑:
这是一个用法示例:
Injector injector = Guice.createInjector(new MyModule());
Repository<Class1> repo1 = injector.getInstance(new Key<Repository<Class1>>() {});
Repository<Class2> repo2 = injector.getInstance(new Key<Repository<Class2>>() {});
Run Code Online (Sandbox Code Playgroud)
虽然更可能的用法是注入另一个类:
public class ClassThatUsesRepository {
private Repository<Class1> repository;
@Inject
public ClassThatUsesRepository(Repository<Class1> …Run Code Online (Sandbox Code Playgroud) 什么List<?>意思,它只是意味着一个未指定类型的对象列表?
谷歌搜索字符串<?>返回没有任何用处(:
当使用Android支持库获得兼容性并尝试查看javadoc时FragmentTransaction,我得到以下错误,因为没有关联的javadoc文件:
android.support.v4.app.FragmentTransaction
注意:此元素既没有附加源也没有附加Javadoc,因此找不到Javadoc.
支持库添加在项目属性中的Android Dependencies项下,并显示Javadoc位置:(无) - 不可修改,如下所示.这有什么解决方法吗?

对于下面的代码,如果用render或vise verse替换redirect_to会发生什么?
def create
@product = Product.new(params[:product])
respond_to do |format|
if @product.save
format.html { redirect_to(@product, :notice => 'Product was successfully created.') }
else
format.html { render :action => "new" }
end
end
end
Run Code Online (Sandbox Code Playgroud)
似乎可以在上面的代码中替换另一个.是否只有redirect_to或render必须使用的地方?渲染除了渲染视图外什么都不做.Redirect_to向服务器发送302请求,重定向后当前参数丢失.
谢谢.
如果我在onResume中为布局调用getMeasuredWidth()或getWidth(),则返回0.我认为此时此视图尚未显示.
另外我认为我需要在绘制布局后调用的回调方法中放置getMeasuredWidth()或getWidth(),并且已知视图测量.我应该使用什么android回调方法?
我很欣赏有关轮换更改的AsyncTask的大量帖子.使用兼容性lib并试图解雇DialogFragmentin 时,我有以下问题onPostExecute.
我有一个片段,它触发AsyncTask显示进度DialogFragment,然后onPostExecute解散对话框然后可能抛出另一个DialogFragment.
如果在显示进度对话框时我把应用程序放到后台我得到了以下片段:
1) onPause
2) onSaveInstanceState
3)onPostExecute我尝试解雇并调用对话框.
我得到一个IllegalStateException因为我正在尝试在活动保存状态时有效地提交事务并且我理解这一点.
在轮换中,我假设(可能不正确)onPostExecute在重新创建活动之前我不会得到.但是,当把应用程序放到后台时,我假设(肯定是错误的)onPostExectute在片段/活动暂停时不会被调用.
我的问题是,我的解决方案是简单地检测onPostExecute到片段/活动暂停并简单地执行我需要做的事情onResume吗?对我来说似乎有些难看.
提前谢谢,彼得.
编辑1
需要支持2.1及以上版本
编辑2
我已经考虑过使用对话框FragmentTransaction:add,FragmentTransaction:commitAllowingStateLoss但这并非没有问题.
android android-lifecycle android-asynctask android-fragments
如何MediaController播放音频文件?我正在创建一个实例MediaController并调用它的show()方法,但它没有显示.可以帮我解决这个问题吗?
我刚刚开始在Eclipse Helios中与Android SDK和AVD Manager交互时遇到错误
我已经尝试重新安装Eclipse插件和Android SDK,但无济于事.
如果我转到"已安装的软件包"页面并单击刷新(或安装或删除软件包),我会弹出一个弹出框说
'Android SDK Content Loader' has encountered a problem.
parseSdkContent failed
java.lang.NullPointerException.
Run Code Online (Sandbox Code Playgroud)
这是完整的日志:
堆栈跟踪
java.lang.NullPointerException
at com.android.ide.eclipse.adt.internal.sdk.Sdk.loadTarget(Unknown Source)
at com.android.ide.eclipse.adt.AdtPlugin$10.run(Unknown Source)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Run Code Online (Sandbox Code Playgroud)
会话数据
eclipse.buildId=M20100909-0800
java.version=1.6.0_20
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_IE
Framework arguments: -product org.eclipse.epp.package.java.product
Command-line arguments: -os linux -ws gtk -arch x86 -product org.eclipse.epp.package.java.product
Run Code Online (Sandbox Code Playgroud)
最近有没有其他人遇到过这个?它似乎并没有影响实际的Android开发,但它只是有点烦人.
android ×5
java ×2
generics ×1
guice ×1
jar ×1
javadoc ×1
layout ×1
measurement ×1
oop ×1
repository ×1
sbt ×1
typeliteral ×1