我正在尝试从ArrayList中获取随机基数: 编辑:完整代码:
public class MainActivity extends AppCompatActivity {
private Random randomGenerator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ArrayList<Base> baseArrayList = new ArrayList<Base>();
Base baseOne = new Base("Grüner Salat");
Base baseTwo = new Base("Gemischter Salat");
Base baseThree = new Base("Rüeblisalat");
Base baseFour = new Base("Eisbergsalat");
baseArrayList.add(baseOne);
baseArrayList.add(baseTwo);
baseArrayList.add(baseThree);
baseArrayList.add(baseFour);
Button mixSaladBtn = (Button) findViewById(R.id.mixSaladBtn);
mixSaladBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView baseTextView = (TextView) findViewById(R.id.baseTextView);
String baseDisplay = getRandomBase(baseArrayList);
baseTextView.setText(baseDisplay);
}
});
ArrayList<Ingredient> ingredientArrayList = new ArrayList<Ingredient>();
}
public String getRandomBase(ArrayList<Base> baseArrayList){
int index = randomGenerator.nextInt(baseArrayList.size());
Base randomBase = baseArrayList.get(index);
System.out.println(randomBase);
return randomBase.getIngredientName();
}
}
当我在onClick方法中调用方法getRandomBase时,应用程序崩溃。不知何故我没有从baseArrayList.get(index);
找回基础
最终编辑:我有2个错误。第一个是一开始我使用的是原始类型。非常感谢您的澄清!
第二个错误是我必须移动Random randomGenerator()的声明;
答案 0 :(得分:0)
您的问题在于发送原始arraylist的方法。所以它不知道它是什么数据类型。可以通过两种方式修复
1。投射
Base randomBase = (Base) baseArrayList.get(index);
发送方法类型
public String getRandomBase(List<Base> baseArrayList){
}
答案 1 :(得分:-1)
尝试
public String getRandomBase(ArrayList<Base> baseArrayList){...