如何在没有错误的情况下对我的ArrayList使用set()?

时间:2015-06-24 00:47:03

标签: java android arraylist

我创建了我的Variables类,并创建了我的ArrayList。 我需要这个ArrayList< Variables>,但是它给出了set方法的错误,我怎样才能将r设置在位置1?被初始化为0。

错误:没有为set(int,int)方法找到合适的方法AbstractList.set(int,Variables)不适用

MainActivity:

public class MainActivity {
Variables variables = new Variables();
ArrayList<Variables> variablesArrayList = new ArrayList<Variables>();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    variables.setR(0);
    variables.setCont(0);
    variablesArrayList.add(variables);

}}

我的代码:

public class T1 extends ActionBarActivity {

Variables variables = new Variables();
ArrayList<Variables> variablesArrayList = new ArrayList<Variables>();
int r;
Random random = new Random();

String[] teste = {
        "test1",
        "test2",
        "test3",
        "test4",
        "test5",
};


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_t1);

    r = variables.getR();
    r = random.nextInt(4);
    variablesArrayList.set(4, r);

    String jogarPergunta = teste[r];


}}

我的班级变量

public class Variables {

// default constructor
public Variables() {
}


private int cont = 0;

private int r = 0;

public int getCont(){
    return cont;
}
public void setCont(int cont){
    this.cont = cont;
}

public int getR(){
    return r;
}
public void setR(int r){
    this.r = r;
}}

3 个答案:

答案 0 :(得分:0)

您的ArrayList被定义为包含Variables个对象:

ArrayList<Variables> variablesArrayList = new ArrayList<Variables>();

但是在使用set方法时你试图输入一个整数:

variablesArrayList.set(4, r);

答案 1 :(得分:0)

您的代码无效,因为您尝试在数组列表中设置r。首先尝试使用variablesArrayList.get(index)从特定位置获取所需的变量对象,然后在其上设置r。

试试这个:

variablesArrayList.get(0).setR(r)

答案 2 :(得分:0)

你不能添加整数....

variablesArrayList.set(4, r);

改变这样的事情......

variablesArrayList.get(your number).setR(r);

variablesArrayList.get(your number)  将返回您的varibales并使用该对象,您可以调用varibales中定义的任何方法...