为什么 toast.maketext 在真机上用不了

2612人阅读
Android(13)
&&&&& 先上效果图:再上代码:public class ImageToast {
* @author spare_H
显示的内容
resId 显示的图片资源的id
which 显示方式 1.添加一个TextView和一个ImageView 2.只添加一个TextView
public static void ShowToastwithImage(Context context, String msg,
int resId, int which) {
Toast toast = new Toast(context);
TextView mTextView = new TextView(context);
// 设置“背景布局”
LinearLayout mLinearLayout = new LinearLayout(context);
mLinearLayout.setBackgroundResource(R.drawable.toast_frame);//toast_frame就是系统的toast的背景图片
if (which == 1) {
mLinearLayout.setOrientation(LinearLayout.HORIZONTAL);
ImageView mImageView = new ImageView(context);
mImageView.setImageResource(resId);
mLinearLayout.addView(mImageView);
mTextView.setText(&\n&+msg);//换行为了模拟文字居中
} else if (which == 2) {
mTextView.setText(msg);
mTextView.setGravity(Gravity.CENTER_VERTICAL);//设置文字居中
mTextView.setCompoundDrawablesWithIntrinsicBounds(resId, 0, 0, 0);
mLinearLayout.addView(mTextView);
toast.setView(mLinearLayout);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
}&&&&&&&&&&&&& 方式一有点糊弄人的感觉,文字居中效果是假的;方式二比较不错,一个Textview搞定。如果是在Service中调用的话,可以用Context mContext = (Context) getBaseContext();得到context。系统Toast的布局文件如下(transient_notification.xml)&LinearLayout xmlns:android=&/apk/res/android&
android:id=&@+id/toast_layout_root&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical&
android:background=&@drawable/toast_frame&&
android:id=&@android:id/message&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_weight=&1&
android:textAppearance=&@style/TextAppearance.Small&
android:textColor=&@color/bright_foreground_dark&
android:shadowColor=&#BB000000&
android:shadowRadius=&2.75&
&/LinearLayout&看到这个,估计就都明白Toast的布局可以很容易自定义了。&&&&& 关于控制Toast显示时间,网上一位兄弟给出了方法,就是使用Timer和TimerTask&,未能找到原始出处,代码如下:private Toast toast =
private class IntroButtonListener implements OnClickListener {
public void onClick(View v) {
// TODO Auto-generated method stub
toast = Toast.makeText(StartPage.this, toastText,Toast.LENGTH_LONG);
initToast();
execToast();
private void execToast(){
Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run() {
// TODO Auto-generated method stub
initToast();
private void initToast(){
toast.show();
文中解释如下:&&&&& 在这里将Toast的示例化延迟到了触发事件是再响应,然后调用的是makeText()方法,给它设置Duration的值为Toast.LENGTH_LONG,然后将toast.show()用一个方法initToast()包起来,这么做的目的是让它显示在Timer中也会接着显示Toast。&&&&& 这么做的逻辑是,首先先显示Toast,然后让Timer帮助再次显示Toast,这样就会出现了Toast长时间显示的效果,如果想让时间变得更长,可以修改Timer里面timer.schedule()的值,这里设置的是30。&&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:118389次
积分:1373
积分:1373
排名:千里之外
原创:19篇
评论:44条
(2)(1)(1)(1)(2)(13)(6)TECH2IPO/创见
「 等待新的科技故事 」
Moontoast帮你把社交网站的影响力换成真金白银
你在社交网站上的影响力很大?那你想过把它变成实实在在的收入没有?就能帮你做到这一点,这家创业企业最近又获得了万美元的投资。给那些在和上有众多的名人和品牌们一个机会,让他们得以用自己的名字盈利。而他们的模式其实就是让这些用户在他们的状态以及其他内容更新中插.
你在社交网站上的影响力很大?那你想过把它变成实实在在的收入没有? 就能帮你做到这一点,这家创业企业最近又获得了600万美元的投资。Moontoast 给那些在 Facebook 和 Twitter 上有众多 Follower 的名人和品牌们一个机会,让他们得以用自己的名字盈利。而他们的模式其实就是让这些用户在他们的状态以及其他内容更新中插入一个链接。而这些链接指向的是各种商品的购买页面,从团购卷到MP3音乐应有尽有。而如果只是这样那也太没有创意了,Moontoast 的创新在于如果有人点击了这些链接,那么他们在整个购买过程中都不会跳转到别的网站上去。业内人士都知道一次跳转就意味着一次客户流失,而 Moontoast 就成功的克服了这个问题。而且他们的战绩还真的不错,已经有类似 Reba McEntire 和 Taylor Swift 这样的歌手使用了他们的服务。根据 Moontoast 的数据,他们的入账都超过了每小时一万美元。Moontoast 称他们将使用这笔投资来改进他们的“分布式商店”以及分析功能,并且他们还希望可以拓展到其他领域,比如在线游戏。他们还将为投放购物链接的商家提供相对应的分析工具。Moontoast 成立于2008年,目前已经筹得了900万美元的资金。他们在最初是一个各类“专家”靠自己的知识帮人解答问题来换取收入的站点。
推广 ,最有趣的原创内容VR小站,有趣得与众不同。
请后参与评论真机测试时个别机型toast信息不显示,找到两个解决方案,不知还有什么其它有效方法,期待大神们的分享!!!1、手动方案:设置——&应用软件管理——&对应APP——&勾选显示通知框2、替代方案:避免toast被拦截,可以考虑用alert dialog来显示需要的信息public static void forceUpdate() {
Log.i(TAG, &forceUpdate&);//
UmengUpdateAgent.forceUpdate(mActivity);
UmengUpdateAgent.update(mActivity);
UmengUpdateAgent.setUpdateAutoPopup(false);
UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() {
public void onUpdateReturned(int updateStatus,UpdateResponse updateInfo) {
switch (updateStatus) {
case 0: // has update
UmengUpdateAgent.showUpdateDialog(mActivity, updateInfo);
Log.i(TAG, &forceUpdate1&);
case 1: // has no update//
Toast.makeText(mActivity, &当前已是最新版本&, Toast.LENGTH_SHORT)//
BaseHelper.showAlert(mActivity,&&, &当前已是最新版本&,&确定&);
Log.i(TAG, &forceUpdate2&);
case 2: // none wifi//
Toast.makeText(mActivity, &没有wifi连接, 只在wifi下更新&, Toast.LENGTH_SHORT)//
case 3: // time out//
Toast.makeText(mActivity, &超时&, Toast.LENGTH_SHORT)//
BaseHelper.showAlert(mActivity,&&, &版本检查超时,请稍候重试&,&确定&);
Log.i(TAG, &forceUpdate3&);
}public static void showAlert(Context context,String title, String message,String confirmStr) {
new AlertDialog.Builder(context)
.setIcon(R.drawable.icon)
setTitle(title)
setMessage(message)
.// 提示内容
setPositiveButton(confirmStr, new DialogInterface.OnClickListener() {// 确定
public void onClick(DialogInterface arg0, int arg1) {
// yes to do
}).show(); }android程序在虚拟设备上可以运行,在真机上不可以。该程序需访问网络。我直接用手机可以访问到我的服务器_百度知道
android程序在虚拟设备上可以运行,在真机上不可以。该程序需访问网络。我直接用手机可以访问到我的服务器
我有更好的答案
看看Console和logcat的报错信息,就做3.2后,一般能找到答案. 手机和电脑连着。2。把logcat中报错的信息百度一下. 访问网络需要权限,如果还不行的话。希望对你有帮助,是否已经配置了.31. 程序所选择的SDK版本要比手机的android版本低。完成1,然后用电脑在手机上运行你的程序
没有打印信息
亲,你贴出来的红色的部分就是错误了。把它打到百度上,就有答案了的。错误部分是: no launcher activity found意思是没有起动的activity。基本上可以确定是AndroidManifest.xml出现了问题。仔细检查一下吧。有没有拼写错误。找不到的话,你就把AndroidManifest.xml内容贴出来。我帮你看看。
麻烦你帮我看看,,谢谢。方便把你qq写上来吗?
你的AndroidManifest.xml中没有activity节点,所以会出现no launcher activity found问题。你把程序中的两个receiver换成activity。看看有没有效果。
我以前做的这个是有界面的,但是也是在真机子上不可以。后来我就换成之前给你的那个没界面。都是在真机子上不可以。虚拟设备都可以。方便给个qq吗?
可能是网速问题的!是在真机上报错还是? 你看看你手机版本是否高于你设计软件的版本,如果不高于的话也是不能运行的!
其他类似问题
为您推荐:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁之前用android studio 和eclipse 都可以真机调试,今天用android studio调试一个程序的时候前几次还好好的,然后最后一次突然就卡在了安装步骤上,手机连接上了,显示扫描安装文件,就是装不上app,等很久都安装不上,然后我以为是程序的问题,换了很多以前做的案例,也装不上了,然后换eclipse也还是一样。我怀疑是手机的问题,就把手机刷了一次机,可还是没有解决问题,一样装不上。求大神指点,万分感谢!
先把旧的apk删掉。。也许是换了ide debug签名不对然后看看有没有在设置那里打开允许第三方未知来源这个开关。在浏览器下载个apk看看能不能装上pc下载一个apk然后用adb install看看能不能装
已有帐号?
无法登录?
社交帐号登录
懂点android开发

我要回帖

更多关于 toast提示 的文章

 

随机推荐