我无法刷新我的 ArrayAdaper 列表视图:S ¿怎么办?

发布于 2024-11-25 18:22:05 字数 1747 浏览 0 评论 0原文

我在 stackoverflow 上搜索了如何刷新使用 ArrayAdapter 的列表视图,并且找到了一些解决方案,但这些解决方案中的任何一个都不适合我!

我有一个带有 NumberPicker 和列表视图的界面。当我按下数字选择器的按钮时,列表视图必须自行更新,但不起作用。当我按下按钮时,列表视图不会自行更新,它会保留相同的数据......但它必须更新,因为当您按下按钮时,您正在更改适配器的一个参数,并且适配器正在接收新数据。 ..

这是我的代码:

public class Calendar extends Activity {
    private ListView CalendarList = null;
    private NumberPicker CalendarPicker = null;
    private ArrayAdapter MyArrayAdapter = null;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.calendar);

        CalendarList = (ListView) findViewById(R.id.CalendarList);
        CalendarPicker = (NumberPicker) findViewById(R.id.CalendarPicker);

        CalendarPicker.setMaxValue(((MyApplication.NEQUIPOS*2)-2));//el maximo valor alcanzable por el picker es el numero de jornadas de la liga, es decir, ((NEQUIPOS*2)-2)
        CalendarList.setClickable(false);
        CalendarList.setFocusable(false);
        CalendarList.setItemsCanFocus(false);
        CalendarList.setSelected(false);
        CalendarList.setEnabled(false);

        CalendarPicker.increment.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                CalendarPicker.increment();     
                MyArrayAdapter.notifyDataSetChanged();
            }
        });

    }

    public void onResume() {
         super.onResume();
        CalendarPicker.setValue(MyApplication.RoundNumber);
        MyArrayAdapter =new ArrayAdapter<String>(this, R.layout.list_item, MyApplication.roundMatches(CalendarPicker.getValue()));
        MyArrayAdapter.setNotifyOnChange(true);

        CalendarList.setAdapter(MyArrayAdapter);
      }


}

i searched on stackoverflow for how to refres a listview that uses ArrayAdapter, and i find some solutions, but any of these solutions didn't work for me!

i have a interface with a NumberPicker, and a listview. When i press on the buttons of the numberpickers, the listview must update itself, but didn't works. When i press the buttons the listview didn't update itselft, it stay with the same data... but it have to update because when you press a button, you are changing one parameter of the adapter and the adapter is receiving new data...

this is my code:

public class Calendar extends Activity {
    private ListView CalendarList = null;
    private NumberPicker CalendarPicker = null;
    private ArrayAdapter MyArrayAdapter = null;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.calendar);

        CalendarList = (ListView) findViewById(R.id.CalendarList);
        CalendarPicker = (NumberPicker) findViewById(R.id.CalendarPicker);

        CalendarPicker.setMaxValue(((MyApplication.NEQUIPOS*2)-2));//el maximo valor alcanzable por el picker es el numero de jornadas de la liga, es decir, ((NEQUIPOS*2)-2)
        CalendarList.setClickable(false);
        CalendarList.setFocusable(false);
        CalendarList.setItemsCanFocus(false);
        CalendarList.setSelected(false);
        CalendarList.setEnabled(false);

        CalendarPicker.increment.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                CalendarPicker.increment();     
                MyArrayAdapter.notifyDataSetChanged();
            }
        });

    }

    public void onResume() {
         super.onResume();
        CalendarPicker.setValue(MyApplication.RoundNumber);
        MyArrayAdapter =new ArrayAdapter<String>(this, R.layout.list_item, MyApplication.roundMatches(CalendarPicker.getValue()));
        MyArrayAdapter.setNotifyOnChange(true);

        CalendarList.setAdapter(MyArrayAdapter);
      }


}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷︶言冷语的世界 2024-12-02 18:22:05

在调用 MyArrayAdapter.notifyDataSetChanged(); 向适配器提供新数据,然后调用 MyArrayAdapter.notifyDataSetChanged(); 之前

Before you call MyArrayAdapter.notifyDataSetChanged(); feed the adapter with the new data and then call MyArrayAdapter.notifyDataSetChanged();

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文