我在活动中有一个对象列表,其中同一活动中的按钮在每次点击时都会向其添加一个对象 我希望能够访问该列表并从任何其他活动迭代它 我公之于众,但它给了我一个错误!
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();
}
});
}
}
有没有办法从任何其他活动中访问和迭代列表电影?
答案 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/