我想使用SharedPreferences存储和检索我的应用程序中所有活动都可访问的数据.那可能吗?到目前为止,我一直这样做,以便为特定活动存储数据.
我的Android应用程序有一个常规按钮:
<Button
android:id="@+id/allOnButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="130dp"
android:text="@string/sensor_management_all_on" />
Run Code Online (Sandbox Code Playgroud)
还有一个切换按钮:
<ToggleButton
android:id="@+id/accelerometerToggleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:textOff="off"
android:textOn="on" />
Run Code Online (Sandbox Code Playgroud)
按下按钮时,会播放一个漂亮的"咔嗒"声,这样可以向用户提供实际按下按钮的良好反馈.
如何为ToggleButton设置咔嗒声?
android原生"VideoView"视频渲染小部件是否播放加密视频文件?
如果是,那么如何播放它以及所有的API.
我已经通过这个链接我找不到任何相关的播放加密视频.
我需要解密我的视频,然后将其传递给VideoView吗?
我已经设法在我的android项目中使用ffmpeg和AudioTrack类播放音频文件.我可以使用AudioTrack类setRate方法更改音频的速度.但它也改变了音频的音调,我想只改变音频的速度,但我发现网上没有解决方案.
任何人都可以帮助我,因为没有这方面的支持.
当应用程序启动并关闭时,我正在获得java.lang.NullPointerException.模拟器的错误是"不幸的是,appname已经停止".它工作正常,直到我写了一堆新代码,并更改了清单.希望它不是清单,但我的问题是,我怎样才能找出问题的代码行?跟踪转储对我来说没有任何意义,即使它很冗长,但是......还有11个不让我看到整件事.
我真的不知道那个错误意味着什么.我已经搜索过了,但似乎有一个列表可能意味着什么.我已经尝试了Project> Clean,我已经尝试过再次使用清单,但我仍然得到错误.我检查/取消选中外部库.刚刚完成了人们建议为其他人犯同样错误的事情.所以我真的很想知道,是什么路线设置它?
如果有帮助,这是输出:
06-29 08:37:23.680: E/AndroidRuntime(1225): FATAL EXCEPTION: main
06-29 08:37:23.680: E/AndroidRuntime(1225): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.upliftly.android/com.upliftly.android.UpliftlyActivity}: java.lang.NullPointerException
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread.access$600(ActivityThread.java:122)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.os.Looper.loop(Looper.java:137)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread.main(ActivityThread.java:4340)
06-29 08:37:23.680: E/AndroidRuntime(1225): at java.lang.reflect.Method.invokeNative(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225): at java.lang.reflect.Method.invoke(Method.java:511)
06-29 08:37:23.680: E/AndroidRuntime(1225): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-29 08:37:23.680: E/AndroidRuntime(1225): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-29 08:37:23.680: E/AndroidRuntime(1225): at …Run Code Online (Sandbox Code Playgroud) 基本上标题是什么,
我的应用程序主要包括一个ViewPager使用aFragmentStatePagerAdapter
当我SurfaceViews向FragmentStatePagerAdapter 添加一系列时,会出现问题.仅出于测试目的,我没有以任何方式继承SurfaceViews.当我浏览几页时,点击"home",然后返回活动,整个设备在渲染任何内容之前冻结一两秒钟.我可以在从背包中取出后恢复所需的时间几次启动并完成()应用程序.我知道应用程序正在运行,因为在第一次screendraw最终发生时,几个AsyncTasks几乎已经完成了.我知道这些AsyncTasks不会导致问题,因为我已将它们删除无效.
当我将SurfaceViews更改为Views问题时,问题就完全消失了.
当我使用我的实际SurfaceViews(我的项目不可协商)时,会出现此问题.多个设备上也会出现此问题.
在这一点上,我认为错误完全在于ViewPager,但我不知道该怎么办,因为我需要那个接口组件.
任何帮助将不胜感激!
编辑:
为了澄清,SurfaceViews/Views表示添加到FragmentStatePagerAdapter的片段视图.
我需要文本中间的文本按钮和文本左侧的图标.
我的按钮:
<Button
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:onClick=""
android:text="@string/search_button"
android:textColor="@drawable/button_text"
android:layout_weight="1"
android:background="@drawable/button"
android:drawableLeft="@drawable/new_star_nonactive" />
Run Code Online (Sandbox Code Playgroud)
我需要宽度为fill_parent的按钮(所有屏幕宽度)
但我有这个:

如何在文本附近设置图像位置中心?
我的应用场景是我想跟踪员工的位置.我有一个广播接收器,它监听设备启动广播并注册一个报警管理器.当警报管理器滴答时,它会注册两个位置监听器,一个用于监听gps,另一个用于监听网络.我希望当我在onLocationChange()方法中获得第一个位置更新时,保存位置并取消注册该位置监听器,以便当警报管理器再次打勾时,它不会重复.要取消注册,我将位置侦听器作为静态对象来访问onLocationChange().但我发现它不是删除位置监听器.这是我的代码示例:
public class BootTimeServiceActivator extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Calendar calendar = Calendar.getInstance();
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent mIntent = new Intent(context, MyBroadCastReceiver.class);
PendingIntent mPendingIntent = PendingIntent.getBroadcast(context, 0, mIntent, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 20 * 60 * 1000, mPendingIntent);
}
}
//..........
public class MyBroadCastReceiver extends BroadcastReceiver{
public static LocationManager locationManager;
public static MyLocationListener networkLocationListener;
public static MyLocationListener gpsLocationListener;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated …Run Code Online (Sandbox Code Playgroud) 所以我的问题是谷歌地图没有显示在我的Android设备上使用3.2 API
在寻找这个问题的解决方案时,我已经尝试过在网上找到的大部分建议.
我确实有<uses-permission android:name="android.permission.INTERNET"/>我的清单.
我按照谷歌书面程序制作了一个签名密钥(http://developer.android.com/tools/publishing/app-signing.html#setup)并获得了所述密钥并将其放入布局中android:apiKey="0R8lbu8yQL1Wgw-13s5sUBXZXusi4mEY3EhqWWw"我仍然看到灰色瓷砖而不是地图.
我知道调试密钥在AVD上运行但在android设备上不起作用,而签名密钥应该在设备上工作而不在AVD中.
我愿意尝试另外一步一步的程序来完成这项工作,如果确实如此,我将永远感激不尽.
请帮忙!谢谢!
解:
正在安装错误的apk到设备.不得不做:
adb install <your-file-name>.apk
在控制台中
编辑:
Manifest File
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.googlemaps"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<uses-library android:name="com.google.android.maps" />
<activity
android:name=".StartActivity"
android:label="@string/title_activity_start">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
</activity>
<service
android:name=".WorldWideMapService"
android:process=":remote">
<intent-filter>
<action
android:name="com.example.googlemaps.WorldWideMapService" />
</intent-filter>
</service>
</application>
Run Code Online (Sandbox Code Playgroud)
我有一个Android应用程序,它执行此操作:
PackageManager pm = getApplicationContext().getPackageManager();
Intent browserIntent = new Intent();
browserIntent.setAction(Intent.ACTION_VIEW);
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE);
browserIntent.setData(Uri.parse("http://www.google.com"));
ResolveInfo resolveInfo = pm.resolveActivity(browserIntent, PackageManager.MATCH_DEFAULT_ONLY);
try {
String browserType = nutent.activityInfo.packageName;
} catch (NullPointerException npe) {
npe.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我已经在4种不同的手机和许多不同的仿真器配置上进行了测试.所有这些都很好.但我正在从野外部署的应用程序中获取崩溃报告,因为resolveInfo有时为null.
立即修复是在崩溃我的应用程序之前捕获NPE并处理它(如上所述).但是我已经尝试了几天自己重现这一点而不能.在安装了单个默认浏览器的模拟器上,它解析为com.android.browser.BrowserActivity:
ResolveInfo{411ef228 com.android.browser.BrowserActivity p=0 o=0 m=0x208000}
Run Code Online (Sandbox Code Playgroud)
同样,在安装了多个浏览器的手机上,这有点不同......对于com.android.internal.app.ResolverActivity:
ResolveInfo{415c13b8 com.android.internal.app.ResolverActivity p=0 o=0 m=0x0}
Run Code Online (Sandbox Code Playgroud)
该resolveActivity()文档在此状态:
返回ResolveInfo,其中包含被确定为最佳操作的最终活动意图.如果未找到匹配的活动,则返回null.如果找到多个匹配活动且没有默认设置,则返回包含其他内容的ResolveInfo,例如活动解析程序.
所以我已经介绍了第一个场景,即被确定为最佳动作的活动意图.最后一个场景,即没有默认操作的多个匹配活动,返回ResolverActivity.
我真的想重现resolveActivity()的场景,在请求URL的活动时给我一个null.有没有人知道如何在没有设备生根的情况下完成这项工作?
android ×10
audio ×2
android-ndk ×1
android-view ×1
audiotrack ×1
button ×1
click ×1
ffmpeg ×1
google-maps ×1
image ×1
java ×1
resolver ×1
togglebutton ×1