Questions tagged «android»

Android是Google的移动操作系统,用于对数字设备(智能手机,平板电脑,汽车,电视,Wear,Glass和IoT)进行编程或开发。对于与Android相关的主题,请使用特定于Android的标签,例如android-intent,android-activity,android-adapter等。对于与开发或编程无关但与Android框架相关的问题,请使用以下链接:https:// android.stackexchange.com。

7
在列表视图上长时间单击事件后创建菜单
我有一个连接到数据库的列表视图,显示所有条目。我希望用户长按列表视图(数据库条目)中的某个项目时显示一个菜单,其中显示用于编辑或删除条目的选项。我怎样才能做到这一点。 到现在为止,我尝试使用onItemLongClick侦听器并在其中进行祝酒,以显示长时间单击的视图的ID。 @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { String res = Long.toString(id); Toast toast = Toast.makeText(this, res, Toast.LENGTH_SHORT); toast.show(); return true; }

9
如果在单独的活动中发生更改,则不会触发onSharedPreferenceChanged吗?
我已经onSharedPreferenceChanged在主要活动中实施了。 如果我在主要活动中更改首选项,则会触发我的事件。 如果通过首选项屏幕(PreferenceActivity)更改了首选项,则更改首选项时不会触发我的事件(因为这是一个单独的活动,并且是对sharedPreferences的单独引用?) 是否有人建议我应如何克服这种情况? 谢谢! EDIT1:我尝试在我的首选项活动中添加事件处理程序,但它从未触发。在我的首选项活动的onCreate期间调用了以下方法。当我更改值时,它从不打印消息(msg()是的包装器Log.d)。 private void registerChangeListener () { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener () { public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { msg (" ***** Shared Preference Update ***** "); Intent i = new Intent(); i.putExtra("KEY", key); i.setAction("com.gtosoft.dash.settingschanged"); sendBroadcast(i); // TODO: fire off the event } …

13
如何从资产文件夹或原始文件夹在android中播放视频?
我正在尝试在android模拟器中播放视频,我在我的Assets文件夹以及原始文件夹中都有视频,但是经过一些研究后,我仍然无法在模拟器中播放视频,我正在android 2.1上工作,我的视频格式是mp4,所以我别以为这应该是个问题谁能给我一个示例代码,以便我能多了解一点? 问题在于,我需要显示视频的VideoView将仅采用URI或文件路径来指向视频。 如果将视频保存在raw或Assets文件夹中,则只能获得输入流或文件描述符,而且似乎没有任何内容可用于初始化VideoView。 更新资料 我仔细研究了MediaPlayer的示例,并尝试使用资产文件的FileDescriptor启动MediaPlayer,如以下代码所示: SurfaceView videoView = (SurfaceView) findViewById(gettingStarted) SurfaceHolder holder = videoView.getHolder(); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); final MediaPlayer player = new MediaPlayer(); player.setDisplay(holder); player.setDataSource(getAssets().openFd(fileName).getFileDescriptor()); player.prepareAsync(); player.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); } }); 现在,我得到以下异常: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it …
70 android  video  assets 


10
Android BLE API:未收到GATT通知
用于测试的设备:Nexus 4,Android 4.3 连接工作正常,但onCharacteristicChanged从未调用我的回调方法。但是我正在使用setCharacteristicNotification(char, true)inside注册通知onServicesDiscovered,该函数甚至返回true。 设备日志(当应该显示通知/通过蓝牙设备发送通知时,实际上根本没有消息): 07-28 18:15:06.936 16777-16809/de.ffuf.leica.sketch D/BluetoothGatt: setCharacteristicNotification() - uuid: 3ab10101-f831-4395-b29d-570977d5bf94 enable: true 07-28 18:15:06.936 4372-7645/com.android.bluetooth D/BtGatt.GattService: registerForNotification() - address=C9:79:25:34:19:6C enable: true 07-28 18:15:06.936 4372-7645/com.android.bluetooth D/BtGatt.btif: btif_gattc_reg_for_notification 07-28 18:15:06.946 4372-7645/com.android.bluetooth D/BtGatt.btif: btgattc_handle_event: Event 1018 07-28 18:15:06.946 4372-7645/com.android.bluetooth D/BtGatt.GattService: onRegisterForNotifications() - address=null, status=0, registered=1, charUuid=3ab10101-f831-4395-b29d-570977d5bf94 07-28 18:15:06.946 4372-7645/com.android.bluetooth …


6
屏幕关闭时,Android加速度计不起作用
我正在为我的计算机科学毕业论文开发一个应用程序,我需要收集和记录加速度计数据。我需要整整一整天才购买它,所以电池电量受到严重限制(例如,我无法打开屏幕)。而且,这不是面向市场的应用程序,因此,如果需要的话,进行一些严重的黑客入侵甚至是低级C / C ++编码也是可以接受的。 众所周知,在许多设备上,当屏幕关闭时,加速度计事件的侦听器会停止生成事件(有关此问题的一些链接:http : //code.google.com/p/android/issues/detail? id = 3708,加速度计当屏幕在Droid / Nexus One上关闭时,即使有WakeLock,也停止提供样品。我已经彻底搜索了一些替代方法,其中一些方法不适用于我的设备(LG P990,ROM)。 所以发生了什么事情:当您在服务中注册android加速度传感器的事件监听器时,它工作正常,直到屏幕关闭。我已经尝试在IntentService上的服务上注册eventListener,试图获取WakeLocks。关于唤醒锁,我可以通过观察LOGcat输出来验证该服务是否仍在运行,但似乎加速度计已进入睡眠模式。某些链接中提供的解决方法之一是使用IntentService的线程定期注销和重新注册事件侦听器,如以下代码段所示 synchronized private static PowerManager.WakeLock getLock(Context context) { if (lockStatic==null) { PowerManager mgr=(PowerManager)context.getSystemService(Context.POWER_SERVICE); lockStatic = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,NAME); lockStatic.setReferenceCounted(true); } return(lockStatic); } @Override protected void onHandleIntent(Intent intent) { sensorManager=(SensorManager) getSystemService(SENSOR_SERVICE); sensorManager.unregisterListener(this); sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); synchronized (this) { boolean …


6
拒绝对先前失败的类java.lang.Class <nt>进行重新初始化:java.lang.NoClassDefFoundError
我在控制台中看到一条信息日志,看起来像一个错误。它是从“艺术”印刷而成的,“艺术”通常与记忆有关,但是我需要帮助了解它的含义。有问题的类是我的MapFragment类。MapFragment是我创建的自定义类,该类扩展了SupportMapFragment,以便可以覆盖触摸事件。此类是否引起此问题,该如何解决? 这是我的MapFragment类 public class MapFragment extends SupportMapFragment { private TouchableWrapper mTouchView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View originalContentView = super.onCreateView(inflater, container, savedInstanceState); mTouchView = new TouchableWrapper(getActivity()); mTouchView.addView(originalContentView); return mTouchView; } @Override public View getView() { return mTouchView; } /** * MapOnTouchListener callback * * @param …


6
从BroadcastReceiver启动服务
我的应用程序中有Service和BroadcastReceiver,但是如何直接从中启动服务BroadcastReceiver?使用 startService(new Intent(this, MyService.class)); 不起作用BroadcastReceiver,有什么想法吗? 编辑: context.startService(..); 的作品,我忘了上下文部分


8
以编程方式设置PopupMenu菜单项
我有一个,PopupMenu而且我知道将菜单关联到该菜单的通常方法是使用popup.getMenuInflater().inflate(R.menu.my_menu, popup.getMenu());或类似方法。我的问题是,菜单中有很多项目,我需要能够以Java编程方式更改它们。我怎样才能做到这一点?

12
状态栏的高度?
有没有一种方法可以获取状态栏和标题栏的高度?检查开发人员论坛会显示相同的问题,但没有解决方案(我可以找到)。 我知道我们可以在初始布局通过后获得它,但是我希望在我的活动的onCreate()中获得它。 谢谢
70 android 

8
AlertDialog的setCancelable(false)方法不起作用
我创建了一个AlertDialog,它工作正常。如果我按以下 按钮,它就会消失:1)使用键盘的逃逸键盘按钮或 2)后退按钮 为了使其即使在上述条件下也能保持聚焦,我在构建时添加了'.setCancelable(false)'语句。但是,我仍然看到对话框消失。问题出在哪儿?请帮忙。 添加的代码: return new AlertDialog.Builder(getActivity()) .setIcon(R.drawable.alert_dialog_icon) .setTitle(title) .setCancelable(false) .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { ((FragmentAlertDialog)getActivity()).doPositiveClick(); } } ) .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { ((FragmentAlertDialog)getActivity()).doNegativeClick(); } } ) .create(); 信封:XP Professional上为Android 4.0。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.