Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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 我可以使用此列表为Arrayadapter提供数据吗?_Android_Arrays_Adapter_Android Arrayadapter_Baseadapter - Fatal编程技术网

Android 我可以使用此列表为Arrayadapter提供数据吗?

Android 我可以使用此列表为Arrayadapter提供数据吗?,android,arrays,adapter,android-arrayadapter,baseadapter,Android,Arrays,Adapter,Android Arrayadapter,Baseadapter,我可以使用下面的代码为我的适配器供电吗?如果是这样的话,你知道我是怎么被困住的吗。如果没有,是否有其他方法来设置arraylist,这样我就可以每页获得3个选项,而不必为每种食物创建一个新的类/arraylist。如果这是唯一的方法,可能会有大量的课程 我这样设置是因为每个按钮都有一个不同的时间值,可以放到下一页 例如,如果用户在上一页上选择朝鲜蓟,则新页面应加载3个按钮,分别为轻度、中度和熟透,每个按钮的煮沸时间也不同 package diederik.lucas.boiltime.da

我可以使用下面的代码为我的适配器供电吗?如果是这样的话,你知道我是怎么被困住的吗。如果没有,是否有其他方法来设置arraylist,这样我就可以每页获得3个选项,而不必为每种食物创建一个新的类/arraylist。如果这是唯一的方法,可能会有大量的课程

我这样设置是因为每个按钮都有一个不同的时间值,可以放到下一页

例如,如果用户在上一页上选择朝鲜蓟,则新页面应加载3个按钮,分别为轻度、中度和熟透,每个按钮的煮沸时间也不同

   package diederik.lucas.boiltime.data;
import java.util.ArrayList;
import java.util.List;

public class TimeOneData {


    private List<Time> Times = new ArrayList<Time>();
    public List<Time> getTimes() {
        return Times;       
    }

    //Not sure if void is the correct return value here
    public void asparagus() {
        addItem(new Time ("Mildly","6"));
        addItem(new Time ("Medium","8"));
        addItem(new Time ("Well Done","10"));
    }

    //Not sure if void is the correct return value here
    public void artichoke() {
        addItem(new Time ("Mildly","5"));
        addItem(new Time ("Medium","7"));
        addItem(new Time ("Well Done","9"));
    }


    //Not sure if void is the correct return value here
    public void beetroot() {
        addItem(new Time ("Mildly","7"));
        addItem(new Time ("Medium","10"));
        addItem(new Time ("Well Done","13"));
    }

    //Not sure if void is the correct return value here
    public void broadBeans() {
        addItem(new Time ("Mildly","1"));
        addItem(new Time ("Medium","2"));
        addItem(new Time ("Well Done","3"));

    }   //Not sure if void is the correct return value here
    public void broccolli() {
        addItem(new Time ("Mildly","4"));
        addItem(new Time ("Medium","8"));
        addItem(new Time ("Well Done","12"));

    }   //Not sure if void is the correct return value here
    public void cabbage() {
        addItem(new Time ("Mildly","3"));
        addItem(new Time ("Medium","6"));
        addItem(new Time ("Well Done","9"));
    }





    private void addItem(Time item) {
        Times.add(item);
    }


}

背景:我是一个试图学习Java+android应用程序构建的初学者。请记住这一点,如果你能给我写一个答案的话!泰

您应该使用枚举来构造数据。由于枚举是对象,因此可以设置具有ArrayList of times属性的VegetableTime枚举

然后你可以使用它,如果你需要一个列表,你可以通过使用VegetableTime.values获得它们

顺便说一下,Middly&co也应该是一个可以坐在时间课上的枚举

代码示例,这里有一种使用两个参数定义CookingTime的方法

public class CookingTime {

    public enum Preparation {

        MILDLY, MEDIUM, WELL_DONE;
    }

    private int time;
    private Preparation preparation;

    CookingTime(Preparation preparation, int time){

        this.time = time;
        this.preparation = preparation;
    }
}
这里有一种蔬菜,可以为这种烹饪方法创建合适的列表

public enum Vegetable {

    ASPARGUS(Arrays.asList(new CookingTime(CookingTime.Preparation.MILDLY, 8), new CookingTime(CookingTime.Preparation.WELL_DONE, 15)));

    Vegetable(List<CookingTime> cookingTimes){
        this.cookingTimes = cookingTimes;
    }

    private List<CookingTime> cookingTimes;
}

好的,这就是我想到的:

Enum:  
公共枚举FoodTimeEnum{

ASPARAGUS ("2",  "3", "4"),
ARTICHOKE ("8",  "12", "16");
//more veggies


private final String mildly;
private final String medium;
private final String welldone;

private FoodTimeEnum(String mildly, String medium, String welldone) {
    this.mildly = mildly;
    this.medium = medium;
    this.welldone = welldone;
}

public String getMildly() {
    return mildly;
}

public String getMeduim() {
    return medium;
}

public String getWelldone(){
    return welldone;
}
}

在时间课上

public class Time {
    public String timeName;
    public String timeMildly;
    public String timeMedium;
    public String timeLong;



    public Time(String id, String boilTime, String mildly, String medium, String welldone) { 
        this.timeName = id;
        this.timeMildly = mildly;
        this.timeMedium = medium;
        this.timeLong = welldone;

    }

    @Override
    public String toString() {
        return timeName;
    }

}

谢谢你的回复!好的,听起来是个好主意;我会处理的。我会很快回来报告…在我的答案上添加了一些代码,请查看。您的代码让我想知道您是否不需要在面向对象编程的基础上进行一些强化?哦,是的,我喜欢。我写这个应用程序是为了学习。我是一个初学者,我花了很多时间阅读,但我需要经验写作。虽然这是我第一个真正的应用程序,但我也尝试着通过简单的设置来练习编码。项目非常感谢上面的代码,并给这个新手一些帮助!也许你跳得太快了!通常在学习Java时,您可以在命令行中制作一个多类游戏,当您的OO基础更强时,可以制作一个android应用程序。或者也许做android会给你动力,所以给你荣誉,祝你好运!是的,我在做安卓,因为它给你…更多的乐趣;但是是的,涉及到非常大的跳跃。所以我已经想好了,在继续之前,再重复一遍基本的步骤。命令行中的一个游戏。我来看看:P再次感谢!