2012-07-05 93 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