Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在从另一个类(Android)获取列表_Android_Arraylist - Fatal编程技术网

正在从另一个类(Android)获取列表

正在从另一个类(Android)获取列表,android,arraylist,Android,Arraylist,好的,我已经在这里搜索过了,试图理解现有的问题,但有困难,所以我发布了这个。 在我的应用程序中,使用recyclerview显示卡。当用户单击任何项目时,其索引(int i)将传递给CardViewActivity,并显示与该值匹配的卡。 我试图显示列表中卡片上的数据。如果我把它放在同一个文件里,我就没有问题了。但是,我想将它保存在一个不同的公共文件中,并从其他类访问它。我想我当前的代码将进入循环,但我无法看到它到底是什么 请帮忙 我的个人班级是: class Person { String n

好的,我已经在这里搜索过了,试图理解现有的问题,但有困难,所以我发布了这个。 在我的应用程序中,使用recyclerview显示卡。当用户单击任何项目时,其索引(int i)将传递给CardViewActivity,并显示与该值匹配的卡。 我试图显示列表中卡片上的数据。如果我把它放在同一个文件里,我就没有问题了。但是,我想将它保存在一个不同的公共文件中,并从其他类访问它。我想我当前的代码将进入循环,但我无法看到它到底是什么

请帮忙

我的个人班级是:

class Person {
String name;
String age;
int photoId;
List<Person> persons;

Person(String name, String age, int photoId) {
    this.name = name;
    this.age = age;
    this.photoId = photoId;
}
protected void initializePerson(){
    persons = new ArrayList<>();
    persons.add(new Person("Emma Wilson", "23 years old", R.drawable.emma));
    persons.add(new Person("Lavery Maiss", "25 years old", R.drawable.lavery));
    persons.add(new Person("Lillie Watts", "35 years old", R.drawable.lillie));
    CardViewActivity cardViewActivity = new CardViewActivity(persons, this);
    cardViewActivity.setDetails();

}
}
班级人员{
字符串名;
弦年龄;
内光体;
列出人员名单;
Person(字符串名称、字符串年龄、int-photoId){
this.name=名称;
这个。年龄=年龄;
this.photoId=photoId;
}
受保护的无效初始值设定项person(){
persons=newarraylist();
新增人员(新人员(“Emma Wilson”,“23岁”,R.drawable.Emma));
新增人员(新人员(“Lavery Maiss”,“25岁”,R.drawable.Lavery));
新增人员(新人员(“Lillie Watts”,“35岁”,R.drawable.Lillie));
CardViewActivity CardViewActivity=新的CardViewActivity(persons,this);
cardViewActivity.setDetails();
}
}
我正在尝试从CardViewActivity访问它:

public class CardViewActivity extends Activity {

TextView personName;
TextView personAge;
ImageView personPhoto;
List<Person> persons;
Person person;
int id;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = getIntent();
    id = intent.getIntExtra("position", 0);
    Toast.makeText(this, "Message"+id, Toast.LENGTH_SHORT).show();
    //Person person = new Person();
    person.initializePerson();

    setContentView(R.layout.cardview_activity);
    personName = (TextView)findViewById(R.id.person_name);
    personAge = (TextView)findViewById(R.id.person_age);
    personPhoto = (ImageView)findViewById(R.id.person_photo);
    //personName.setText(persons.get(0).name);
    setDetails();

}

CardViewActivity(List<Person> persons, Person person){
    this.persons = persons;
    this.person = person;
}
public void setDetails(){
//this.persons = persons;
//Toast.makeText(this, "Inside setDetails() and id is "+i, Toast.LENGTH_SHORT).show();
//Toast.makeText(this, "Person name is "+persons.get(i).name, Toast.LENGTH_SHORT).show();
int i = id;
personName.setText(persons.get(i).name);
//personAge.setText(persons.get(i).age);
//personPhoto.setImageResource(persons.get(i).photoId);

}

private void initializeData(){
    persons = new ArrayList<>();
    persons.add(new Person("Emma Wilson", "23 years old", R.drawable.emma));
    persons.add(new Person("Lavery Maiss", "25 years old", R.drawable.lavery));
    persons.add(new Person("Lillie Watts", "35 years old", R.drawable.lillie));


}
}
公共类CardViewActivity扩展活动{
TextView人名;
文本视图人物;
ImageView个人照片;
列出人员名单;
个人;
int-id;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Intent=getIntent();
id=intent.getIntExtra(“位置”,0);
Toast.makeText(这是“Message”+id,Toast.LENGTH_SHORT).show();
//Person=新人();
person.initializePerson();
setContentView(R.layout.cardview_活动);
personName=(TextView)findViewById(R.id.person\u name);
人物=(TextView)findViewById(R.id.person\u age);
personPhoto=(ImageView)findViewById(R.id.person\U photo);
//personName.setText(persons.get(0.name));
setDetails();
}
CardViewActivity(列出人员、人员){
这个人=人;
这个人=人;
}
公开资料{
//这个人=人;
//Toast.makeText(这是“Inside setDetails(),id是“+i,Toast.LENGTH_SHORT).show();
//Toast.makeText(这个“人名是”+persons.get(i).name,Toast.LENGTH_SHORT).show();
int i=id;
personName.setText(persons.get(i.name));
//personAge.setText(persons.get(i.age));
//setImageResource(persons.get(i).photoId);
}
private void initializeData(){
persons=newarraylist();
新增人员(新人员(“Emma Wilson”,“23岁”,R.drawable.Emma));
新增人员(新人员(“Lavery Maiss”,“25岁”,R.drawable.Lavery));
新增人员(新人员(“Lillie Watts”,“35岁”,R.drawable.Lillie));
}
}
执行以下操作

public class SomeConstant {
    public static List<String> someList = new ArrayList<String>();
    static {
        someList.add("John");
        someList.add("adam");
    }
}

你能使列表保持静态吗?根据你的目标,你可以使卡片列表保持静态。你可以把它放在一个单独的类中,然后从class.cardlist这样的类中访问它,我想这就是我要做的。我把它放在教室里。我想在另一个类中访问它以进行RecyclverView,但首先我尝试使用单卡。这样做的好处是什么?不必像上面那样做。。。在您的代码中,您可以将列表定义为publicstatic,并且您应该能够在其他类中访问它
    public static void main(String[] args) {
        System.out.println(SomeConstant.someList);
    }

}