gpt4 book ai didi

java - Android Studio 中的动态 ListView : Selecting random element and update list view

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:09:03 26 4
gpt4 key购买 nike

public class MyWorkout extends AppCompatActivity {
Button addExercise
// Record how many clicks
int clickCounter=0;
private ListView mListView;
ArrayList<String> listItems = new ArrayList<String>()
ArrayAdapter<String> adapter;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SetContentView(R.layout.activity_my_workout);
Toolbar MyWorkouttoolbar = (Toolbar) findViewById(R.id.MyWorkouttoolbar);
setSupportActionBar(MyWorkouttoolbar);
listItems.add("Power Clean");
listItems.add("Dead Lift");
listItems.add("Hang Clean");
listItems.add("Military Press");
listItems.add("Leg Press");
listItems.add("Squat");
listItems.add("Bench MAX");
listItems.add("Squat MAX");
listItems.add("Stair Stepper");
listItems.add("Treadmill");
listItems.add("Bike");
listItems.add("Elliptical");
listItems.add("Bicep Curls");
listItems.add("Dumb Bell Squats");
listItems.add("Goblet Squats");
listItems.add("Bar Bell Curls");
listItems.add("Bar Bell Bench Press");
listItems.add("Dumb Bell Bench Press");
listItems.add("Incline Bar Bell Bench Press");
listItems.add("Incline Dumb Bell Bench Press");
listItems.add("Decline Dumb Bell Bench Press");
listItems.add("Decline Bar Bell Bench Press");
listItems.add("Dumb Bell Lunges");
listItems.add("Bar Bell Lunges");
listItems.add("Dumb Bell Flys");
listItems.add("Tricep Push Downs");

if (mListView == null) {
mListView = (ListView) findViewById(R.id.MyWorkoutlistView);
}
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listItems);
setListAdapter(adapter);
addExercise = (Button) findViewById(R.id.addExercise);
addExercise.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Collections.shuffle(listItems);
adapter.getItem(4);
adapter.notifyDataSetChanged();
}
});
}

private void updateListView(){
ListView listView = (ListView)findViewById(R.id.MyWorkoutlistView);
}

// method which will handle dynamic insertion
public void addItems(View v) {
listItems.add("Clicked : "+clickCounter++);
adapter.notifyDataSetChanged();
}

protected ListView getListView(){
if (mListView==null){
mListView = (ListView) findViewById(R.id.MyWorkoutlistView);
}
return mListView;
}

protected void setListAdapter(ListAdapter adapter){
getListView().setAdapter(adapter);
}

protected ListAdapter getListAdapter(){
ListAdapter adapter = getListView().getAdapter();
if (adapter instanceof HeaderViewListAdapter){
return ((HeaderViewListAdapter)adapter).getWrappedAdapter();
} else {
return adapter;
}
}

我有一个包含练习的 ListView 。我想随机选择数组中的一个元素并将该随机元素添加到另一个 ListView 。

是否可以将原始练习 ListView 更改为仅显示随机元素?

我是 android studio 的新手,所以如果我不清楚请告诉我,我会更好地解释。谢谢

最佳答案

I have a list view populated with exercises. I would like to randomly select an element in an array and add that random element to another list view.

您可以:

  1. Random.nextInt() 得到数组中的一个随机位置
  2. 检索该位置的元素,即 arr[selectedPosition]
  3. 将元素放入第二个 ListView 的适配器中,例如 ArrayAdapter.add() .

如果您不使用ArrayAdapter,您需要实现添加元素的接口(interface),或者您可以使用ListView.setAdapter() 创建和设置一个全新的适配器。 .

Also is it possible to change the original exercise list view to display only the random element?

当然可以,但还有一些工作要做。如果你使用ArrayAdapter,你可以只clear()适配器,然后 add()只有你想显示的元素。为了不丢失日期,您可以将所有练习保存在适配器外部的数组/列表中。

如果您不使用ArrayAdapter,并且想实现您的自定义逻辑,记得调用notifyDataSetChanged()在修改后的适配器上,以便 ListView 知道刷新自己。

关于java - Android Studio 中的动态 ListView : Selecting random element and update list view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34119723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com