我的例子中有3个类:A类,主要活动.A类调用startActivityForResult:
Intent intent = new Intent(this, ClassB.class);
startActivityForResult(intent, "STRING");
Run Code Online (Sandbox Code Playgroud)
B类,这个类是一个TabActivity:
Intent intent = new Intent(this, ClassC.class);
tabHost.addTab...
Run Code Online (Sandbox Code Playgroud)
C类,这个类是一个常规的Activity:
Intent intent = this.getIntent();
intent.putExtra("SOMETHING", "EXTRAS");
this.setResult(RESULT_OK, intent);
finish();
Run Code Online (Sandbox Code Playgroud)
onActivityResult在类A中调用,但resultCode RESULT_CANCELED代替,RESULT_OK返回的intent为null.如何从TabHost中的Activity返回一些内容?
我意识到问题是我的C类实际上是在B类中运行,而B类是返回RESULT_CANCELED到A类的.我只是不知道一个解决方法.
我有一个自定义列表视图,我希望列表的背景是白色的,所以我做这样的事情,效果很好.
listView = (ListView) this.findViewById(R.id.listview);
listView.setBackgroundColor(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)
问题是当你滚动列表时,所有列表项的背景变为黑色,这看起来很糟糕.
我在列表视图中尝试将背景颜色设置为白色.当我给视图充气时,我也尝试将背景颜色设置为白色:
view.setBackgroundColor(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)
这两个都解决了滚动背景颜色的问题,但现在该项目似乎不是可点击的,即使它是.我的意思是onClick仍然可以正常工作,但背景不闪现橙色让用户知道他点击了它.
如何在列表视图中显示白色背景,滚动时保持白色,并且正常列表活动橙色单击背景?
谢谢!
我正在尝试创建一个始终在屏幕上的按钮.
以下代码执行#1和#2,但软键按钮不再起作用:
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)
将其更改为此选项会禁用叠加层,但#2和#3会起作用:
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
Run Code Online (Sandbox Code Playgroud)
最后在这个例子中,点击了叠加层和它后面的内容:
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
Run Code Online (Sandbox Code Playgroud)
如何更改此设置以使叠加层可以点击,直接在其下面是不可点击的,并且叠加层之外的所有内容都可以使用,包括主页按钮?
执行所有这些的示例应用程序是Super Manager.
更新:我发现以下内容允许使用主页按钮,但仍然不是其他按钮:
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT |
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
Run Code Online (Sandbox Code Playgroud)
,
有很多很酷的小部件可以启用和禁用手机上的自动旋转功能.禁用它会在手机上的所有应用中关闭它.
有什么想法他们是如何完成它的?
更新:我正在重新编写Android 3.0之前的兼容性原始帖子.
我正在尝试创建一个简单的通知,除了灯光之外的所有功能都很棒.当通知触发时,我确实关闭了屏幕.使用此弃用的代码声音和振动适用于Android 4.0(Galaxy Nexus)和Android 2.3(HTC EVO).
在4.0 Galaxy Nexus上,灯不起作用.
Notification notification =
new Notification(R.drawable.ic_launcher, "My Ticker!",System.currentTimeMillis());
notification.setLatestEventInfo(context, "My Title", "My Message", pendingIntent);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
//notification.defaults |= Notification.DEFAULT_LIGHTS;
notification.ledARGB = 0xff00ff00;
notification.ledOnMS = 300;
notification.ledOffMS = 1000;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
notification.flags |= Notification.FLAG_AUTO_CANCEL;
Run Code Online (Sandbox Code Playgroud)我还尝试了不属于v4兼容性库的新API,因此我只能在Galaxy Nexus上测试它.振动和声音再次起作用但不起作用.
Notification.Builder builder = new Notification.Builder(context);
builder.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("My Ticker")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND | Notification.FLAG_SHOW_LIGHTS)
.setLights(0xff00ff00, 300, 100)
.setContentTitle("My Title 1")
.setContentText("My Text 1");
Notification notification = …Run Code Online (Sandbox Code Playgroud) 使用Crashlytics + Fabric for Android时,有一种非常简单的方法可以启用和禁用崩溃报告.我使用它,所以在开发和测试期间,没有大量的崩溃警告每个人.
Crashlytics crashlytics = new Crashlytics.Builder().disabled(true).build();
Run Code Online (Sandbox Code Playgroud)
现已弃用disabled(boolean)方法.有没有人知道替换是用于以编程方式禁用和启用crashlytics的?
在今天之前我会说这是不可能的,让一个应用程序覆盖在其他一切之上:主屏幕,应用程序,拨号器等.
如果您尝试免费应用程序"超级经理",它就是这样做的.它有一个图标和小部件像屏幕,将始终和任何地方显示.当图标或小部件在屏幕上时,您仍然可以与在其后面运行的应用程序进行交互.
这怎么可能,我们如何重新创建这个功能?
更新:这是一些实际的图像.您可以看到叠加的应用程序作为Dolphin顶部的小箭头运行.然后当你按它时,你可以看到应用程序作为一个大小部件运行.即使在窗口小部件启动时,您仍然可以与后台应用程序进行交互.在此示例中,dolphin是后台应用程序.


我的小部件从中读取图像/res/drawable/.
我希望能够更改图像并将其写回/res/drawable/结构.
这可能吗?
我试图从小部件设置屏幕亮度.我们知道这很容易实现,因为大量的小部件已经这样做,但是如何......
在我从小部件调用的服务中,我这样做来设置亮度:
Settings.System.putInt(this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 200);
Run Code Online (Sandbox Code Playgroud)
除非它不"刷新"屏幕以应用新设置,否则效果很好.关闭和打开屏幕会刷新显示设置,因此我们知道代码有效.
我还在几个网站上看到这样的东西会刷新屏幕,但我们不能使用它,因为我们在一个小部件中.窗口小部件活动和服务不能使用getWindow.
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 100 / 100.0f;
getWindow().setAttributes(lp);
Run Code Online (Sandbox Code Playgroud)
除了Beautiful Widgets,Power control,Extended controls等所有这些小工具还有什么用呢?
更新:另一张海报建议启动空活动并执行WindowManager刷新.这样可行,但它会在一秒钟内出现一个丑陋的黑屏.由于其他小部件不这样做,必须有一种方法来防止丑陋的空白黑屏显示.
Nexus安卓手机今天开始销售2.1 Os.我的朋友刚刚订购了两个隔夜送货.我认为这意味着明天或第二天它将在他手中.
在开发人员触摸SDK之前,人们手中有2.1可以接受甚至远程接受吗?我已经有用户使用Nexis-Droid 2.1 rom说我的高度使用的小部件不起作用.如何在不破坏手机的情况下提前测试出来?
当应用程序无法运行时,所有这些都会让用户感到沮丧,并且由于开发人员没有机会更新代码,因此会进一步降低市场价格.
谢谢谷歌....