所以我看到其他一些类似的帖子,但并没有完全回答我正在寻找的内容。
基本上onCreate正在加载内容(文本视图和图像),它还会打开另一个线程来准备媒体播放器,以便在按下按钮时播放特定的歌曲。如果打开此活动并快速按下该按钮则不会播放任何内容(我假设因为它没有机会准备)。如果我打开活动并给它一些时间它就可以了。我确实意识到运行在onCreate中加载的内容并不是最好的,但是我试图让它在其他线程中加载并且它失败了。对我来说一切都很好,我真正想要的就是这个。
我需要一些方法来阻止使用按钮或让他们知道它加载大约3-5秒。因此,要么使按钮淡出并且不能使用3-5秒,然后它变为活动状态或加载屏幕,这是一个透明的覆盖活动约3-5秒。如果你提到使用其他线程,你可以演示它,如果它没有要求太多或给我一些教程(除了谷歌笔记)。我还不太了解线程(对他们来说很新)而AsyncThread对我来说非常困惑。
如果您需要代码,请告诉我您想要发布的内容。谢谢,我感谢任何帮助。
答案 0 :(得分:5)
您可以在MediaPlayer上设置setOnPreparedListener
,在此监听器中启用按钮并保存可以播放歌曲。
Docs
答案 1 :(得分:0)
我会创建一个控制按钮行为的xml选择器文件。类似的东西:
<?xml version="1.0" encoding="utf-8"?>
<item android:state_enabled="true" android:drawable="@drawable/lbl_black_matte" />
<item android:state_enabled="false" android:drawable="@android:color/transparent">
</item>
然后,在您的活动中:
private Button mActivate;
mActivate =(Button)findViewById(R.id.activate); mActivate.setOnClickListener(本);
然后在某个地方,你会检查魔法是否准备就绪,然后激活按钮:
if (mEnabled) {
mActivate.setEnabled(true);
}
最后,您必须在创建按钮的xml文档中引用按钮行为选择器。
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>
如果清楚,或者您需要我解释如何创建点击监听器,请告诉我。
祝你好运!