2010-08-24 82 views
3

你好,我是一個幾乎完全用C++/c#/ vbs工作的程序員,剛剛進入Android開發的世界。我遇到了幾個問題,我似乎無法找到答案/不想看冗長的教程視頻找出所以我想我會問這裏,並得到一個快速的答案。Android編程問題

我不知道這是否是最好的方式來做到這一點,所以我願意接受任何建議。

我需要一些自定義數據容器爲我的程序,可以說我想要一個'成就'類,所以我可以有他們的數組!

現在在C#中我會做類似

public class Achievment 
{ 
    bool locked; 
    string achName; 
    string achSubName; 

    public Achievement(string name, string subname) 
    { 
     //ctor code goes here 
    } 
} 

那不是一切,我需要但那數據佈局,我想的想法。然而,當我嘗試在Eclipse中創建一個自定義類時,我總是喜歡'公共類型成就必須在其自己的文件中定義?'我正在寫這個應用程序的.java文件...是否有其他地方這應該去?我感到很困惑。基本上Java可能是swahili對我來說......我喜歡我的直覺c#佈局!

本質上,我想將我的數據與我的用戶界面分開存儲,當我生成「成就列表」時,它會查看當前用戶的成就數組並從中填充。好壞?

任何不是重定向到教程的形式的答案都非常感謝!

回答

4

您必須從類中移除公共修飾符(因此它的可見性將爲默認級別 - 僅可從您的Application類放置的包中看到),或者您需要將類移至Achievment.java文件。

4

在java中,公共類需要在自己的文件中,文件名與類名相同(在你的例子中,它必須在Achievment.java中)。

5

您應該在一個名爲Achievement.java的單獨文件中定義Achievement類。您還需要更改構造有名字的名字作爲類:

... 
public Achievement(String name, String subname) 
{ 
    //ctor code goes here 
} 
... 

在Java中,類型爲String,不string

1

在Eclipse Java項目的源文件夾中創建一個名爲Achievement.java的文件。你也可能會希望類的包存在,所以你假設你的包名稱爲「com.acme」,那麼你的Achievement.java文件將下面的目錄結構中存在:

<project-folder>/src/com/acme/Achievement.java 

現在,假設你已完成上述步驟,您還需要對您發佈的代碼進行以下更正:

package com.acme // NOTE: This maps to the directory structure 

public class Achievement { 
    private boolean locked; 
    private String achName; 
    private String achSubName; 

    public Achievement(String name, String subname) { 
     this.achName = name; 
     this.achSubName = subname; 
    } 

    public boolean isLocked() { 
     return this.locked; 
    } 

    public void setLocked(boolean locked) { 
     this.locked = locked; 
    } 

    public String getName() { 
     return this.achName; 
    } 

    public void setName(String name) { 
     this.achName = name; 
    } 

    // etc ... 
}