从任何活动迭代全局列表

时间:2014-02-12 09:57:55

标签: android arraylist

我在活动中有一个对象列表,其中同一活动中的按钮在每次点击时都会向其添加一个对象 我希望能够访问该列表并从任何其他活动迭代它 我公之于众,但它给了我一个错误!

package com.fawzyx.movie_rental_store;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class MovieReg_activity extends Activity {

    public List<movie> movies = new ArrayList<movie>();

    String movName ;
    int dvdNo ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mov_reg_layout);
        EditText etmovie_name = (EditText)findViewById(R.id.etmovname);
        EditText etdvd_no = (EditText)findViewById(R.id.etdvds);
        Button btMovie_submit = (Button)findViewById(R.id.btmovsubmit);

        movName= etmovie_name.getText().toString();
        dvdNo = Integer.parseInt(etdvd_no.getText().toString()); // to string then to int :)

        btMovie_submit.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                movies.add(new movie(movName , dvdNo) );
                Toast.makeText(MovieReg_activity.this, "Movie Added", Toast.LENGTH_LONG).show();    


            }
        });

    }

}

有没有办法从任何其他活动中访问和迭代列表电影?

3 个答案:

答案 0 :(得分:2)

您可以使用静态方式访问此列表:

public static List<movie> movies = new ArrayList<movie>();

然后从其他活动:

int size = MovieReg_activity.movies.size(); // exp: check the size

for(movie m : MovieReg_activity.movies){
    // do something with m
}

答案 1 :(得分:1)

如果要创建全局列表,请创建静态变量或将其放在应用程序类中并通过上下文访问它。​​

搜索有关创建自定义应用程序类的信息。

答案 2 :(得分:0)

也许使用包含电影列表的单例类。

然后你就可以随处访问它了。

http://androidresearch.wordpress.com/2012/03/22/defining-global-variables-in-android/