小编sky*_*all的帖子

onCreateOptionsMenu()调用super

我正在使用OptionsMenu创建应用程序.我发现几个例子吧,但是大家都在用不同的地方调用super.onCreateOptionMenu()onCreateOptionsMenu()方法.

不同方式列表:

@Override // without super
public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.mymenu, menu);
  return true;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  super.onCreateOptionsMenu(menu);
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.mymenu, menu);
  return true;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.mymenu, menu);
  return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

我该怎么用?

android android-optionsmenu

35
推荐指数
1
解决办法
9018
查看次数

TextView以不同的方式添加drawable

TextView设置drawable的方法之间的区别在哪里?文档很模糊.

1) setCompoundDrawables (Drawable left, Drawable top, Drawable right, Drawable bottom)
2) setCompoundDrawablesRelative (Drawable start, Drawable top, Drawable end, Drawable bottom)
3) setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom)
4) setCompoundDrawablesRelativeWithIntrinsicBounds(Drawable start, Drawable top, Drawable end, Drawable bottom)
Run Code Online (Sandbox Code Playgroud)

提前致谢.

android textview android-drawable

17
推荐指数
1
解决办法
5115
查看次数

FragmentManager - IllegalStateException - 没有主机

这个堆栈跟踪我面临着一个非常奇怪的问题:

Fatal Exception: java.lang.IllegalStateException No host
    android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1194)
    android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1189)
    android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated (FragmentManager.java:2001)
    android.support.v4.app.Fragment.performActivityCreated (Fragment.java:1976)
    android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1051)
    android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1207)
    android.support.v4.app.BackStackRecord.run (BackStackRecord.java:738)
    android.support.v4.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:1572)
    android.support.v4.app.FragmentManagerImpl$1.run (FragmentManager.java:493)
    android.os.Handler.handleCallback (Handler.java:733)
    android.os.Handler.dispatchMessage (Handler.java:95)
    android.os.Looper.loop (Looper.java:146)
    android.app.ActivityThread.main (ActivityThread.java:5593)
    java.lang.reflect.Method.invokeNative (Method.java)
    java.lang.reflect.Method.invoke (Method.java:515)
    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1283)
    com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1099)
    dalvik.system.NativeStart.main (NativeStart.java)
Run Code Online (Sandbox Code Playgroud)

我在多个Android版本(4.1.2,4.2.2,6.0)上跟踪了这次崩溃的4次出现.我使用了很多Fragments,这意味着我无法弄清楚究竟抛出异常的位置.

代码FragmentManager:

void moveToState(int newState, int transit, int transitStyle, boolean always) {
    if (mHost == null && newState != Fragment.INITIALIZING) {
        throw new IllegalStateException("No host");
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

在我看来,当没有主机Activity属于时,会发生这种情况Fragment.我ve …

android android-fragments

12
推荐指数
1
解决办法
8840
查看次数

Android getOrientation()方法返回错误的结果

我正在创建3D Compass应用程序.

我正在使用getOrientation方法来获取方向(几乎与此处相同的实现).如果我把电话放在桌子上它运作良好,但当电话顶部指向天空(减去图片上的Z轴;球体是地球)时,getOrientation开始给出非常糟糕的结果.它为Z轴提供了几个真实度数的0到180度之间的值.有什么方法可以抑制这种行为吗?我创建了一个描述问题的小视频(抱歉质量不好).提前致谢.

在此输入图像描述

解决方案:旋转模型时,有以下区别:

gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL
gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH


gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION
gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH
Run Code Online (Sandbox Code Playgroud)

java android orientation

10
推荐指数
1
解决办法
9718
查看次数

Android Studio在Logcat中缺少异常堆栈跟踪

有一段时间,当开发的应用程序崩溃时,Android Studio不显示堆栈跟踪.我只能看到以下内容:

06-09 16:12:36.875  26037-26037/com.a.b W/dalvikvm? threadid=1: thread exiting with uncaught exception (group=0x4206c700)
Run Code Online (Sandbox Code Playgroud)

这让我抓狂,因为我无法看到应用程序真正崩溃的地方(以及发生了什么异常).我正在使用AS 1.3 Preview 2.起初我虽然存在依赖性问题,但现在我正在使用这些并且问题仍然存在:

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  compile 'com.android.support:appcompat-v7:22.2.0'
  compile 'com.google.android.gms:play-services-base:7.5.0'
  compile 'com.google.android.gms:play-services-analytics:7.5.0'
  compile 'com.jakewharton:butterknife:6.1.0'
}
Run Code Online (Sandbox Code Playgroud)

问题可能基于这样一个事实,即应用程序不会崩溃,而只会冻结.

谢谢你的每一个建议.

debugging android logcat android-studio

9
推荐指数
2
解决办法
5525
查看次数

Pygame 中蒙版和发射光束的重叠 [AI 汽车模型视觉]

我尝试在 Pygame 中使用预定义的轨道掩码实现光束碰撞检测。我的最终目标是让 AI 汽车模型能够看到它所行驶的轨道:

AI车模视觉

这是我当前的代码,我发射光束来掩盖并尝试找到重叠:

import math
import sys

import pygame as pg

RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)

pg.init()
beam_surface = pg.Surface((500, 500), pg.SRCALPHA)


def draw_beam(surface, angle, pos):
    # compute beam final point
    x_dest = 250 + 500 * math.cos(math.radians(angle))
    y_dest = 250 + 500 * math.sin(math.radians(angle))

    beam_surface.fill((0, 0, 0, 0))

    # draw a single beam to the beam surface based on computed final point
    pg.draw.line(beam_surface, BLUE, (250, 250), …
Run Code Online (Sandbox Code Playgroud)

python pygame artificial-intelligence collision-detection

6
推荐指数
1
解决办法
267
查看次数