2012-07-05 158 views
0

我得到了這兩個類。下一個應該得到與電影的ArrayList ...添加對象(String,String,int,int)到ArrayList

import java.util.ArrayList ; 
import android.app.Activity ; 
import android.os.Bundle ; 

public class UIDActivity extends Activity { 

    private static ArrayList<Movie> movieList; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

    } 

    public static void main(String String, int 
    int args[] 


     ) {  

movieList = new ArrayList<Movie>(); 
     movie1 = new Movie("Fight Club", "David Fincher", "1999", "3"); 

     movieList.add(movie1); 

    } 

    public String getTitle() { 
     return title; 

    } 

    public String getDirector() { 
     return director; 

    } 

    public int getYear() { 
     return year; 
    } 

    public int getRating() { 
     return rating; 
    } 
} 

這是電影類,在我分不清什麼屬性是一個電影

import java.io.Serializable ; 

@SuppressWarnings("serial") 
public class Movie implements Serializable { 

    public String title; 
    public String director; 
    public int year; 
    public int rating; 

    public Movie(String deTitle, String deDirector, int hetYear, int deRating) { 
     title = deTitle; 
     director = deDirector; 
     year = hetYear; 
     rating = deRating; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

    public void setDirector(String director) { 
     this.director = director; 

    } 

    public void setYear(int year) { 
     this.year = year; 

    } 

    public void setRating(int rating) { 
     this.rating = rating; 

    } 
} 

的出於某種原因,我無法弄清楚我一直忘記什麼簡單的事情?!?! Eclipse希望將我的公開電影更改爲四次字符串...沒有錯誤,但其餘的都不會工作。

+2

雖然重新格式化您的代碼,我注意到,你的主要的聲明是'公共靜態無效的主要(字符串字符串,詮釋整形變量[])',是一個錯字(2 int +奇怪的簽名與額外的int args []參數)?和'字符串字符串'?該代碼不會編譯。你能發佈實際的代碼嗎? – assylias 2012-07-05 17:54:30

+0

請發佈確切的錯誤信息 – 2012-07-05 17:59:00

+0

猜猜錯字,但嘗試所有可能的組合在那裏大聲笑。有我的電影類整理,因爲它應該是..至少我希望至少這是完美的..但是Eclipse不斷給我所有我想要做ArrayList的各種錯誤。當我擺脫那裏的錯誤,然後所有突然的.add不工作不再::( – Rick 2012-07-05 18:02:11

回答

0

據我所知,如果你創建一個靜態變量,你必須在那個時候初始化它。

試試這個:

private static ArrayList<Movie> movieList = new ArrayList<Movie>(); 

順便說一句,不應該UIDActivity吸氣劑是被移動到Movie類或包含你想要哪部電影的指數?

+0

Eh?你可以使用靜態初始化塊來代替它們在聲明中的初始化 – 2012-07-05 18:03:50

+0

嗯......沒有意識到這一點。知道。 – Wolfman2000 2012-07-06 17:53:32

0

問題是,您試圖使用兩個Strings和兩個ints構造函數,而是傳遞構造函數4個字符串。

在電影類的構造方法的簽名是

public Movie(String deTitle, String deDirector, int hetYear, int deRating) 

您嘗試調用構造函數是不正確的方式。

此:

movie1 = new Movie("Fight Club", "David Fincher", "1999", "3"); 

應該是:

movie1 = new Movie("Fight Club", "David Fincher", 1999, 3); 
1

您必須制定者/吸氣只有在電影類,此外,做出一定的類變量聲明爲private,只有通過適當的吸氣劑進入。

公共類電影實現Serializable {

​​

}

另外,我想使用List接口,實例化作爲ArrayList的定義名單。

+0

Oke,現在我把getters放回到Movie類。現在,我的私人靜態ArrayList movielist出現問題;這個突然變紅:s就像;後面(R.layout.main)..我現在得到爲什麼要把getters回到那裏..但越來越混淆關於UIDActivity – Rick 2012-07-05 18:27:01

2

你的電影的構造函數期待兩個String對象和兩個int -

public Movie(String deTitle, String deDirector, int hetYear, int deRating) 

但是你逝去的四個弦對象 -

movie1 = new Movie("Fight Club", "David Fincher", "1999", "3"); 

你爲什麼試圖通過四項字符串值,以電影的構造而不是由構造函數預期的兩個字符串和兩個int?通過構造函數的方式,你應該創建影片對象如下 -

movie1 = new Movie("Fight Club", "David Fincher", 1999, 3); 
+0

感謝你的變化中的錯誤..我可以是一個這樣的白癡時不時。 。但我仍然在我的公共靜態無效主和我的getter錯誤 – Rick 2012-07-05 18:14:17

相關問題