Java 将随机字符串从另一个数组添加到ArrayList
试图用随机字符串填充我的Java 将随机字符串从另一个数组添加到ArrayList,java,android,Java,Android,试图用随机字符串填充我的ListView,但每次我单击按钮时,都会用相同的值填充相同的字符串。像狗,狗,狗 有人能给我一个提示吗 public class MainActivity extends ListActivity { ArrayList list1 = new ArrayList(); String[] list2 = {"Bubbles", "Goldie", "Dog", "Fins", "Dory"}; ArrayAdapter
ListView
,但每次我单击按钮时,都会用相同的值填充相同的字符串。像狗
,狗
,狗
有人能给我一个提示吗
public class MainActivity extends ListActivity {
ArrayList list1 = new ArrayList();
String[] list2 = {"Bubbles", "Goldie",
"Dog", "Fins", "Dory"};
ArrayAdapter adapter;
int randomNum;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random rand = new Random();
randomNum = rand.nextInt(list2.length);
Button add = (Button) findViewById(R.id.add_button);
Button delete = (Button) findViewById(R.id.delete_button);
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list1);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
list1.add(list2[randomNum]);
adapter.notifyDataSetChanged();
}
});
setListAdapter(adapter);
}
}
调用OnCreate()
时,将分配randomNum
:
randomNum = rand.nextInt(list2.length);
它在运行时不会更改
改变
list1.add(list2[randomNum]);
到
你的问题就在这里
public void onClick(View v) {
list1.add(list2[randomNum]);
adapter.notifyDataSetChanged();
}
randomNum
永远不会随当前实现而更改。创建活动时,随机数只生成一次
您可以添加
randomNum=rand.nextInt(list2.length)
到您的onClick
方法,或者使用list1.add(list2[rand.nextInt(list2.length)]
您已将随机数生成放在onCreate()
方法中
如果希望在每次单击按钮时生成新的随机索引,则需要将其放在onClickListener
中:
@Override
public void onClick(View v) {
list1.add(list2[rand.nextInt(list2.length)]);
adapter.notifyDataSetChanged();
}
调试,调试,调试。一步一步地运行调试好的,看看调用的是什么,以什么顺序调用。
@Override
public void onClick(View v) {
list1.add(list2[rand.nextInt(list2.length)]);
adapter.notifyDataSetChanged();
}