小编Jak*_*keP的帖子

Android - 操作栏中的SearchView上的NullPointerException

在我的活动中尝试将SearchView小部件添加到ActionBar时遇到了问题 - 在调用getActionView获取SearchView对象时,我得到一个空值.

我一直在关注Android开发者指南,并且还经历了大量的SO问题以及互联网上的其他一些链接; 一切都无济于事.它可能是一些简单的东西,但我无法弄明白 - 在我看来,我的代码基本上与谷歌相同(除了更改一些名称等),但它仍然无法正常工作.

任何帮助,将不胜感激.

下面包括代码的相关位.如果您不清楚是否有任何可能出错的问题,请告诉我.

活动代码:

    private ListView workflowListView;
    private DrawerLayout drawerLayout;
    private ListView drawerList;
    private ActionBarDrawerToggle drawerToggle;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
        setContentView(R.layout.activity_workflow_list);

        workflowListView = (ListView) findViewById(R.id.workflowListView);
        drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawerList = (ListView) findViewById(R.id.drawer_list);

        drawerToggle = new ActionBarDrawerToggle(
             this,                  /* host Activity */
             drawerLayout,         /* DrawerLayout object */
             R.drawable.ic_launcher,  /* nav drawer icon to replace 'Up' caret */
             R.string.app_name,  /* "open drawer" description */
             R.string.app_name  /* "close drawer" description */
             ) …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-actionbar searchview

47
推荐指数
3
解决办法
2万
查看次数

基于RSSI估计信标接近度/距离 - 蓝牙LE

我有一个简单的iOS应用程序,显示它使用诸如"立即","近"等表达式检测到的蓝牙LE信标的接近度.我需要在Android上编写类似的东西.

我已经按照Android开发人员的教程进行了操作,我能够列出检测到的设备,现在想要估算距离/接近度 - 这就是它成为问题的地方.根据这个SO线程,它只是一些数学计算.但是,它们要求我提供txPower值.

根据Dave Smith的本教程(以及与此蓝牙SIG声明的交叉引用),它应该由信标设备广播为类型的"AD结构" 0x0A.所以我所做的是解析AD结构并查找与该类型匹配的有效负载.

问题:我有4个信标 - 2个estimotes和2个appflares.estimotes根本不播放txPower,appflares将它们广播为0.

这里有什么我想念的吗?iOS应用程序似乎没有任何问题处理它,但使用iOS SDK它在幕后做,所以我不知道如何产生完全相同或类似的行为.还有其他方法可以解决我的问题吗?

如果您想查看我用来解析AD结构的代码,可以从前面提到的Dave Smith的github中获取,可以在这里找到.我对该类所做的唯一更改是添加以下方法:

public byte[] getData() {

    return mData;
}
Run Code Online (Sandbox Code Playgroud)

这就是我处理扫描回调的方法:

// Prepare the callback for BLE device scan
this.leScanCallback = new BluetoothAdapter.LeScanCallback() {

    @Override
    public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {

        if (!deviceList.contains(device)) {

            MyService.this.deviceList.add(device);
            Log.e("Test", "Device: " + device.getName());

            List<AdRecord> adRecords = AdRecord.parseScanRecord(scanRecord);

            for (AdRecord adRecord : adRecords) {

                if …
Run Code Online (Sandbox Code Playgroud)

android bluetooth rssi bluetooth-lowenergy android-bluetooth

20
推荐指数
3
解决办法
7万
查看次数

Android - 将图像资源转换为Uri:IllegalArgumentException

我正在尝试从我的Android应用程序中的资源加载图像,但我不断收到"IllegalArgumentException:URI中的预期文件方案"错误.

我将'missing_album_art.png'文件放在我的项目中的drawable-hdpi,drawable-ldpi和drawable-mdpi文件夹中,并刷新Eclipse以便它显示它们在那里.

我用来创建Uri的那条线是:

Uri uri = Uri.parse("android.resource://android.aberplayer/R.drawable.missing_album_art");
Run Code Online (Sandbox Code Playgroud)

'android.aberplayer'是我的应用程序的主要包,也是包含我使用上述行的类的包.

我一直得到的错误是:

03-16 00:16:29.252: E/AndroidRuntime(25598): FATAL EXCEPTION: main
03-16 00:16:29.252: E/AndroidRuntime(25598): java.lang.IllegalArgumentException: Expected file scheme in URI: android.resource://src.android.aberplayer/R.drawable.missing_album_art
03-16 00:16:29.252: E/AndroidRuntime(25598):    at java.io.File.checkURI(File.java:245)
03-16 00:16:29.252: E/AndroidRuntime(25598):    at java.io.File.<init>(File.java:182)
03-16 00:16:29.252: E/AndroidRuntime(25598):    at android.aberplayer.CurrentSongList.getCurrentAlbumArt(CurrentSongList.java:69)
Run Code Online (Sandbox Code Playgroud)

关于访问Android应用程序中的图像资源,我有什么不明白的地方吗?

resources android uri image drawable

7
推荐指数
2
解决办法
2万
查看次数

将Unity3d视图集成到Android活动中

我目前正在开发一款适用于Android的小型AR应用程序,并且面临将Unity3d集成到活动中的问题.这些要求表明我需要能够呈现一些Android UI - 例如菜单和操作栏 - 以及将在检测到目标时显示在Unity3d中创建的模型的摄像机视图.

我找到了一个帮助很多的链接:Unity3d论坛.其中一个用户问我现在有同样的问题,但从来没有得到任何正确的答案 - 这就是我在这里发帖的原因.

问题:

我有一个小的Unity3d项目,它本质上是一个白色立方体,我试图在我的一个Android活动中显示它.当活动setContentView()在其onCreate()方法中没有时,模型看起来很好,但我不能在XML文件中指定我的布局.

当我添加setContentView()方法时,我可以看到立方体,但它非常小,似乎没有任何方法可以实际改变它的大小.

XML文件:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/unityView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

第一版活动实施:

    public class HomeActivity extends UnityPlayerActivity {

        UnityPlayer unityPlayer;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        }
    }
Run Code Online (Sandbox Code Playgroud)

结果截图: 在此输入图像描述

活动实施的第二版:

public class HomeActivity extends UnityPlayerActivity {

        UnityPlayer unityPlayer;

        @Override
        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_home);
            unityPlayer = new UnityPlayer(this);
            int glesMode = unityPlayer.getSettings().getInt("gles_mode", 1);
            unityPlayer.init(glesMode, false);

            FrameLayout layout = (FrameLayout) findViewById(R.id.unityView); …
Run Code Online (Sandbox Code Playgroud)

android unity-game-engine augmented-reality android-layout

7
推荐指数
1
解决办法
9287
查看次数