如果我想上传我的Android应用程序以支持多种语言,我是否必须上传多个.apks,每个都是针对我想支持的语言而设计的,还是我将它全部实现为一个.apk文件?
注意:我的应用程序是一款游戏,并且在UI中并不真正包含任何字符串.UI是使用Photoshop制作的,例如带有文本的按钮等.
如果我将所有语言打包成一个.apk文件,我该如何检查应用程序应该使用哪种语言?
更新:
我的所有图像都存储在项目的assets文件夹中.我如何本地化他们?
目前我在Dropbox上保存了我的代码的在线副本.我想知道是否有任何其他方便的选项,例如Eclipse插件(可以自动执行此操作?).
注意:项目的代码是私有的,因此我正在寻找一个不公开的选项.
我有一个填充整数的列表:
List collection = new ArrayList();
collection.add(this.score1);
collection.add(this.score2);
collection.add(this.score3);
Run Code Online (Sandbox Code Playgroud)
现在我想比较每个单独得分的最高得分,看看哪个得分最高.直觉我试着这样做:
String highestScore;
if(Collections.max(collection) == this.score1) {
highestScore = "Score 1";
}
if(Collections.max(collection) == this.score2) {
highestScore += ", Score 2";
}
if(Collections.max(collection) == this.score3) {
highestScore += ", Score 3";
}
Run Code Online (Sandbox Code Playgroud)
然而,
Collections.max(collection) == this.score1
Collections.max(collection) == this.score2
Collections.max(collection) == this.score3
Run Code Online (Sandbox Code Playgroud)
都给我错误:
不兼容的操作数类型Comparable和int
然而,这似乎工作:
int highestScoreValue = Collections.max(collection);
Run Code Online (Sandbox Code Playgroud)
现在怎么样?
为什么Java允许将int设置为Collections.max(collection),但是不允许将int与之进行比较Collections.max(collection)?
何时以及为什么该方法boolean java.util.List.remove(Object object)返回false?
文件说明
[该方法返回]如果此操作修改了此List,则返回true,否则返回false.
为什么该操作不会在列表上生效?
(注意:我正在使用的列表的实现是ArrayList)
更新:
我尝试删除的对象确实存在于列表中.我将类添加到List(因此参数this)并将this(在同一个类中)传递给remove方法.因此,对象应该存在于List中(或不存在?).
更新:
这是代码.看看这个delay()方法.我试图从中删除相应的类List.
public class Timer extends Object {
private static List<Timer> allTimers;
private Long startTime;
private int delayTime;
private boolean registered;
String name;
public Timer(String name) {
this.name = name;
this.registered = true;
allTimers.add(this);
Log.d("SpaceDroid", "Foo: Created timer: " + name + " Size: " + this.allTimers.size());
}
public Timer(String name, int delayTime) {
this(name);
this.delayTime = …Run Code Online (Sandbox Code Playgroud) 假设我有两个接口:
public interface InterfaceA {
public int getStuff();
}
public interface InterfaceB {
public String getStuff();
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个实现这两个接口的类:
public class Testing implements InterfaceA, InterfaceB{
public String getStuff() {
return "one";
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,这会编译吗?如果它确实编译了,它会运行吗?
编辑:
我确实在我的电脑上试过这个,发现它编译并运行了,但是当调用 getStuff() 时,程序以
未解决的编译问题
任何想法 Java 在较低级别上做什么?
我目前正在开发Android游戏,并希望实施分析.我发现Flurry和Google Analytics都能提供跟踪用户位置的功能.我一直在玩Flurry并且看到用户位置是基于大陆的(我想除非我添加访问GPS的权限,用户不喜欢).我想知道Google Analytics是否可以在不授权访问GPS的情况下为我提供更精确的用户位置?
我有以下代码,我在其中创建一个名为users的List <>对象.我将users对象设置为不同的List <>.然而,只要我向users对象添加内容,另一个List <>对象的大小也会发生变化?这巫术是什么?这应该是这样的,我以为我只是制作了另一个List <>对象的副本.
当我运行此代码时,此日志显示:朋友数量:0朋友数量:1朋友数量:1
users = new ArrayList<Profile>(); // Friends of this player
users = game.getUserProfile().getProfileFriends();
game.getGameLog().d(classTAG, "Amount of Friends: " + game.getUserProfile().getProfileFriends().size());
users.add(game.getUserProfile());
game.getGameLog().d(classTAG, "Amount of Friends: " + game.getUserProfile().getProfileFriends().size());
this.sortUsersAccordingToXP();
game.getGameLog().d(classTAG, "Amount of Friends: " + game.getUserProfile().getProfileFriends().size());
Run Code Online (Sandbox Code Playgroud)
注意:这不是所有的代码,但是代码会影响我的问题,一旦我删除了add方法,另一个List <>的大小就不会增长(当然还有用户对象).
假设我有以下代码:
public boolean doesElfLikeIt ( Monster mon )
{
if ( mon instanceof Orc ) { return false; }
if ( mon instanceof Elf ) { return true; }
}
Run Code Online (Sandbox Code Playgroud)
这是一个很好的编程方法还是我应该选择这样的东西:
public boolean doesElfLikeIt ( Monster mon )
{
if ( mon.getType() == Orc.type ) { return false; }
if ( mon.getType() == Elf.type ) { return true; }
}
Run Code Online (Sandbox Code Playgroud)
我问这个的原因是因为我听到很多关于instanceof比较有多邪恶,但我发现它很有用.
我可以像这样设置一个数组:
Object[] objects = {new Object()};
Run Code Online (Sandbox Code Playgroud)
但是,如果我有一个方法:
public void setObject(Object[] objects) {
}
Run Code Online (Sandbox Code Playgroud)
我做不到以下事情:
setObject({new Object()});
Run Code Online (Sandbox Code Playgroud)
为什么是这样?为什么{new Object()}不足以作为参数但足以初始化Object[]数组?
我正在调整自己使用c#编写代码(来自java背景),学习新的有趣概念,如结构,命名空间,事件,部分和委托.
但是我无法弄清楚以下代码代表什么.在Xamarin中启动新的Android解决方案时,命名空间下方会显示以下内容:
[Activity (Label = "CTSPAndroid", MainLauncher = true)]
Run Code Online (Sandbox Code Playgroud)
这是做什么的?这个叫什么?
我有一个public List<FriendProfile> friends = new ArrayList<FriendProfile>();.我通过从服务器读取信息来初始化好友列表.FriendProfile对象包含一个名为的intprivate int userPosition;
一旦朋友列表被初始化,我想通过让FriendProfile对象具有userPosition列表中索引0 的最高位置对朋友列表进行排序,然后相应地排序,索引1具有第二高userPosition...
我想我可以写一个排序算法,但我正在寻找预先编写的代码(也许JDK有一些提供的方法?)
感谢帮助!
我想知道是否有可能覆盖一个方法(或类似的东西),当应用程序因某些异常而崩溃时将调用该方法.
我想这样做,所以下次用户登录时,它会给他/她一条消息,说应用程序已崩溃,并且该错误将尽快修复.
任何人都知道为什么Logcat没有显示完整的消息?我尝试从我的网站打印xml响应,但我只能得到一些..