Android Gallery视图侦听器会增加延迟吗?

Android Gallery视图侦听器会增加延迟吗?,第1张

概述我已经实现了gallery和listview.画廊有图像,当我单击使用setOnItemSelectedListenerListview的图像时,将更新有关选定图像的信息.问题:当我快速浏览图库时,它会快速更新我的列表视图.但是据我说,listview应该等待图库停止在任何一张图像上移动,然后更新其内容.任何人都知道该怎

我已经实现了gallery和ListvIEw.
画廊有图像,当我单击使用setonItemSelectedListener ListvIEw的图像时,将更新有关选定图像的信息.

问题:当我快速浏览图库时,它会快速更新我的列表视图.但是据我说,ListvIEw应该等待图库停止在任何一张图像上移动,然后更新其内容.

任何人都知道该怎么做,或者在更新ListvIEw之间增加时间?请帮忙..

解决方法:

您可以改为尝试setonItemClickListener.仅当您实际“点击”图像时才触发它,而不仅仅是选择它.

    gallery.setonItemClickListener(new OnItemClickListener() {        public voID onItemClick(AdapterVIEw<?> parent, VIEw v, int position, long ID) {            // Do what you want        }    });

更新:

如果要延迟动作,而不是onItemClickListener实现,则有(至少)两个选择.一种是使用超时(Thread.sleep())运行单独的线程,完成后,可以使用Handler更新活动状态.另一个选择是使用AsyncTask,这在技术上是相同的方法,它仅将Runnable任务和Handler包装在一个内部类中.最简单的实现可能是这样的:

    ListUpdater ListUpdater; @OverrIDepublic voID onItemSelected(AdapterVIEw<?> arg0, VIEw arg1, int position, long arg3) {    // We have to run this thread to add delay before updating activity vIEws    if (ListUpdater != null) { // Cancel prevIoUs task        ListUpdater.cancel(true);    }    if (ListUpdater == null || position != ListUpdater.getposition()) {        ListUpdater = null;        ListUpdater = new ListUpdater(position);        ListUpdater.execute();    }}class ListUpdater extends AsyncTask<String, String, String> {    private int position;    public int getposition() {        return position;    }    public ListUpdater(int position) {        this.position = position;    }    @OverrIDe    protected String doInBackground(String... params) {         try {            Thread.sleep(600); // set delay time here        } catch (InterruptedException e) {        }        return null;    }    @OverrIDe    protected voID onPostExecute(String result) {        if (!isCancelled()) {            // If another thread is not running,             //  that is if another item was not selected,            //  update the activity             // Add code here to update the activity             // This method works in UI Thread, so you don't need to use Handler            // For example:            Toast.makeText(YourActivity.this, "" + position, Toast.LENGTH_SHORT).show();        }        super.onPostExecute(result);    }}

这是实施延迟的一个例子.不一定要精确满足您的需求,但是您可以从中获得一些有关如何实现的想法.

总结

以上是内存溢出为你收集整理的Android Gallery视图侦听器会增加延迟吗?全部内容,希望文章能够帮你解决Android Gallery视图侦听器会增加延迟吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073027.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存