首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止使用按钮,直到它准备就绪

防止使用按钮,直到它准备就绪
EN

Stack Overflow用户
提问于 2011-09-16 04:29:20
回答 2查看 87关注 0票数 0

因此,我已经看到一些类似的其他帖子,但没有完全回答我正在寻找的。

基本上,onCreate正在加载内容(文本视图和图像),它还打开了另一个线程来准备媒体播放器,这样当按下按钮时,它就会播放特定的歌曲。如果打开此活动并快速按下按钮,则不会播放任何内容(我认为这是因为它还没有机会准备)。如果我打开该活动并等待片刻,它就能正常工作。我确实意识到,在onCreate中运行加载的内容并不是最好的,但我试图让它加载到其他线程中,但它失败了。对我来说一切都很好,我真正想要发生的是这件事。

我需要一些方法来防止使用按钮或让他们知道它正在加载约3-5秒。所以,要么让按钮淡出并在3-5秒内不可用,然后它就会变成活动状态,要么是一个透明的加载屏幕,覆盖整个活动大约3-5秒。如果你提到使用其他线程,你可以演示它,如果它不是要求太多,或者给我展示一些类似教程的东西(除了谷歌笔记)。我对线程的理解还不是很好(对它们来说还很陌生),而且AsyncThread对我来说也很困惑。

如果你需要代码,让我知道你想要张贴什么。谢谢,我很感谢任何人的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-16 04:33:40

你可以在你的MediaPlayer上设置一个setOnPreparedListener,在这个监听程序中,你启用你的按钮并保存,歌曲就可以播放了。Docs

票数 5
EN

Stack Overflow用户

发布于 2011-09-16 05:11:59

我会创建一个控制按钮行为的xml选择器文件。类似于:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>

代码语言:javascript
复制
<item android:state_enabled="true" android:drawable="@drawable/lbl_black_matte" />

<item android:state_enabled="false" android:drawable="@android:color/transparent">
</item>

然后,在你的活动中:

代码语言:javascript
复制
private Button mActivate;

mActivate =(按钮) findViewById(R.id.activate);mActivate.setOnClickListener(此);

然后,在某个地方,您将检查魔术是否准备就绪,如果是,则激活按钮:

代码语言:javascript
复制
if (mEnabled) {

            mActivate.setEnabled(true);
        }

最后,必须在创建按钮的xml文档中引用按钮行为选择器。

代码语言:javascript
复制
android:layout_width="match_parent">
        <Button android:id="@+id/activate"
            android:background="@drawable/b_behaviour" android:layout_height="wrap_content"
            android:layout_margin="8dip" android:layout_width="match_parent"
            android:text="@string/setup_label_enable" android:textColor="@android:color/white"
            android:textStyle="bold">
        </Button>

请让我知道,如果这是清楚的,或者如果你需要我解释如何创建点击监听器。

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7437068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档