小编War*_*ock的帖子

即使连接了硬件键盘,也显示软键盘

有没有办法显示连接USB键盘的软件键盘(在我的情况下是RFID阅读器)?
我试图使用InputManager强制显示它(带有这些或类似的参数),但没有运气

((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
Run Code Online (Sandbox Code Playgroud)

重要提示 - 我知道状态/系统栏中有一个按钮可以显示它,但用户(Kiosk应用程序)看不到此按钮.

keyboard android kiosk-mode android-softkeyboard android-input-method

21
推荐指数
1
解决办法
1万
查看次数

在Fragment中调用initLoader时?

我有一个非常简单的片段与ListView,CursorLoader和CursorAdapter.一切都在单一活动中(只是切换片段).我的问题是onLoadFinished()在某些情况下根据我调用initLoader()的位置被调用两次.那些情况是:

  • 配置更改(旋转屏幕等)
  • 使用FragmentTransaction将当前片段替换为另一个片段,然后返回(弹出backstack).在这种情况下,一个列表项的细节片段.

当initLoader()放入onCreateView()时,onAoseCreated()(在文档中推荐)onLoadFinished()在配置更改后被调用两次.有解释为什么Rudik Krasniynos.但是当从backstack弹出更新的片段时,onLoadFinished()只被调用一次.

当initLoader()放在onResume()/ onStart()方法中时,上面的情况相反.两次调用onLoadFinished()用于弹出backstack,另一次用于配置更改.

所以问题是在没有调用onLoadFinished()两次的情况下初始化Loader的地方或方法,或者检查两次不是init Loader的内容.谢谢!

替换片段的代码:

FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.root_view, fragment, tag);
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)

CursorAdapter的代码:

//onCreateView
MyCursorAdapter mAdapter = new MyCursorAdapter(getActivity(), null, 0);
mList.setAdapter(mAdapter);
//in other/same lifecycle callbacks
getLoaderManager().initLoader(ID, null, this);
Run Code Online (Sandbox Code Playgroud)

我正在使用支持库v18.

android android-fragments

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

将abiFilters添加到gradle属性

我想在gradle.properties文件中添加ndk.abiFilters属性.现在我在build.gradle中有这个属性.这是我的build.gradle的一部分

buildTypes {
  debug { 
     ndk {
       abiFilters "x86", "armeabi-v7a", "armeabi"
       //abiFilters ABI_FILTERS
     }
   }
}
Run Code Online (Sandbox Code Playgroud)

这是我的gradle.properties文件的一部分

ABI_FILTERS = "x86", "armeabi-v7a", "armeabi"
Run Code Online (Sandbox Code Playgroud)

问题是gradle.properties中的String未正确转换以用于abiFilters.我试过很多变种,但没有运气.如何正确执行此操作的正确方法是什么?谢谢你的帮助.

android android-ndk android-gradle-plugin

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

如何标记活动

我正在使用此代码跳回活动堆栈(主要是移动到home Activity):

Intent goTo = new Intent(this, HomeActivity.class);
goTo.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(goTo);
Run Code Online (Sandbox Code Playgroud)


所以我创建了新的Intent并将"target"设置为HomeActivity,它位于Activity堆栈中,因此整个堆栈将从顶部清除到此HomeActivity.
现在我需要稍微不同的用例.我在堆栈上有五个活动ABCDE(A启动B等).现在我需要根据用户的选择从E跳到C或B. 问题是活动A,B,C,D,E具有相同的类别.所以我不能使用上面的例子,因为我不知道如何定位该Activity.
所以问题是如果有任何方式"标记活动"或使用堆栈进行操作.
谢谢!

android

8
推荐指数
1
解决办法
3684
查看次数

Facebook喜欢带Web的WebView按钮

我正在尝试实现Facebook Like按钮,它不是使用WebView的Android Facebook SDK的一部分.这个想法非常简单.我使用SDK使用SSO登录用户帐户,因此如果用户已登录android FB应用程序,则用户无需再次键入登录名/密码.然后我想使用WebView插入标准的Like Button.
我已经拥有用户身份验证令牌,在墙上发送状态的权限等.问题是如何告诉WebView用户已经登录.我试图使用由FB生成的URL(webview.loadURL())的WebView(启用JS):

http://www.facebook.com/plugins/like.php?href=myurl&send=false&layout=button_count&width=450&show_faces=true&action=like&colorscheme=light&font&height=21&appId=myId"
            + "&token=" + mFacebook.getAccessToken()+"&expires="+mFacebook.getAccessExpires(); //(or auth_token instead)<br>
Run Code Online (Sandbox Code Playgroud)

显然这是错误的/或者不应该以这种方式发送自动化,因为在点击Like按钮后,用户被重定向到Web浏览器中的登录页面.
所以问题是如何编辑此URL或如何在WebView中设置cookie(在CookieManager中设置为URL以及哪些cookie)以便用户签名.
感谢您的帮助!

android facebook facebook-like

8
推荐指数
1
解决办法
2649
查看次数

如何在AVD 4.2中启用多用户支持

有没有办法如何在Android 4.2(ADT版本21)的新(模拟器)AVD中启用多用户支持?在真实设备上,"设置"中应该有"用户"菜单项,但在我的AVD上缺失.我知道此功能仅对某些平板电脑设备启用,但在新的"设备定义"部分中创建AVD或编辑设备时,我没有找到任何设置.即使使用Android 4.2从Nexus 7配置文件创建设备也无济于事.
有关如何启用此功能的任何建议?谢谢!

android android-virtual-device android-emulator

8
推荐指数
1
解决办法
3305
查看次数

带标题视图的ViewPager

我需要制作看起来像这样的布局
在此输入图像描述
有标题视图(RelativeLayout),下面是ViewPager Indicator,然后是带有页面的ViewPager(FragmentPagerAdapter),其中包含ListView或ScrollView.因为标题视图可能很大,所以整个布局应该是可滚动的.

我最好的尝试是让ListView有两个标题(Header视图和ViewPager) - 但这是非常糟糕的,因为ListView在另一个ListView和回收问题.

这样做的最佳方法是什么?是否有任何方法可以添加ViewPager标题视图,因为它可以使用ListView和addHeaderView()方法完成?

谢谢你的帮助!

android android-listview android-viewpager

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

Kotlin 1.4.20 - 构建速度较慢

我们看到,由于在构建的执行阶段从 1.4.10 更新到 1.4.20,构建性能受到了巨大的打击。检索缓存等的次数似乎相同。几乎每个模块只需要 10 倍的时间来编译。任何提示在哪里看?谢谢

基础信息:

  • 摇篮 6.7.1
  • Kotlin 1.4.20 或更新的 1.4.21
  • Android Gradle 插件 4.1.1
  • Gradle 守护进程 VM 堆大小没问题
  • Windows 和 Linux 测试 - 结果相同

屏幕截图 - 相同的构建,相同的机器 - 只是更改了 Kotlin 版本

科特林 1.4.10

科特林 1.4.20

android gradle kotlin

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

如何在TextView上斜向穿透

有没有简单的方法如何在TextView上绘制斜向穿透?现在我正在使用此代码:

textview.setPaintFlags(textview.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
Run Code Online (Sandbox Code Playgroud)

但是我需要这样的东西:
在此输入图像描述
我不熟悉Paint API如何简单地实现这一点,所以任何帮助将不胜感激.
谢谢.

android

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

AbiFilters不适用于库模块

我有带有库模块依赖项的应用程序项目,因此正在使用库(NDK)。有许多这样的库用于不同的ABI。在我的图书馆项目中,gradle如下所示:

android {
  defaultConfig {
      defaultPublishConfig debug // to build only debug variant
  }
buildTypes {
    debug {
        ndk {
            abiFilters "armeabi-v7a"
        }
    }
Run Code Online (Sandbox Code Playgroud)

这里的目标是使库模块更小(上传到存储库等),并且仅用于开发。AbiFilter现在仅适用于应用程序项目,不适用于库。
我是否缺少某些内容或库模块不支持abiFilter?谢谢

android gradle android-gradle-plugin

6
推荐指数
0
解决办法
745
查看次数

OkHttp MockWebServer 作为独立的模拟服务器

我已经让 OkHttp MockWebServer 与 Android 的 Espresso UI 测试一起运行。一切正常。

现在我想让 MockWebServer 在我的本地主机上独立运行,以便其他客户端能够连接到它。Appium、互联网浏览器等客户端将从服务器获取模拟响应。我想重用已经准备好的模拟代码,而不是使用像 Wiremock 这样的东西。

我的方法是在单独的 Java/Kotlin 项目中构建独立的 jar 工件,该项目将使用 cmd 行在我的计算机上运行。示例代码如下。

问题是我无法连接到服务器的显示 URL 地址。我正在尝试 ping 命令等。但找不到服务器。
不知道下一步要尝试或设置什么。
谢谢

错误信息:

ping http://kubernetes.docker.internal:62037 
Ping request could not find host http://kubernetes.docker.internal:62037. Please check the name and try again.
Run Code Online (Sandbox Code Playgroud)

模拟服务器:

object MockServer {

fun init() {
    GlobalScope.launch(Dispatchers.IO) {
        val mockWebServer = MockWebServer()
        mockWebServer.start()
        println("Server url: " + mockWebServer.url("").toString())
    }
}
Run Code Online (Sandbox Code Playgroud)

主要类别:

fun main(args: Array<String>) {
   MockServer.init()
   println("MockServer running")
   Thread.sleep(30000) // main thread is sleeping …
Run Code Online (Sandbox Code Playgroud)

okhttp mockwebserver

5
推荐指数
0
解决办法
553
查看次数

KSOAP永远不会超时

我正在使用支持超时的ksoap2 2.5.4(在Android 2.2上).我正在使用Apache 2.2.16来处理我的请求.一切正常,但当我关闭我的Apache(或断开运行Apache的远程PC)时,呼叫永远不会超时.我正在使用单独的线程来调用我的WS,在这种情况下,这个线程停止工作/响应/停止大约2分钟.

int MSG_TIMEOUT = 15000;
HttpTransportSE httpTransport;
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
httpTransport = new HttpTransportSE(URL, MSG_TIMEOUT);
httpTransport.debug = true;
httpTransport.call(SOAP_ACTION, envelope);//thread stops responding here
Run Code Online (Sandbox Code Playgroud)

我甚至尝试使用Timer在预定义的超时后取消该线程,但它不起作用.线程仍在那里等待2分钟.

TimerTask task;
Timer mTimer;
task = new TimerTask() {
  public void run() {               
    mThread.interrupt();
   }
 };
mTimer = new Timer();
mTimer.schedule(task, MSG_TIMEOUT);
Run Code Online (Sandbox Code Playgroud)

我也得到这个可能与它有关的警告(我不知道该怎么办):

Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
(org.ksoap2.transport.KeepAliveHttpsTransportSE$1) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler …
Run Code Online (Sandbox Code Playgroud)

android timeout ksoap ksoap2 android-ksoap2

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

替换最近的应用菜单中的图像

在我的应用程序中是显示用户敏感数据(收件箱,密码,银行帐户余额等)的活动.这些部分当然是受密码保护的,用户会在一段时间后自动注销(这在onRestart()中进行了检查).问题是这个应用程序在Android 3.0+上运行时(其最近的应用程序菜单包含最近的应用程序的图像)这些敏感数据在此菜单中是可读的.有没有办法将该图像更改为应用程序徽标或其他内容?
我已经尝试使用EXCLUDE_FROM_RECENTS标志在新任务中启动这些部分,这有助于中断用户体验.
其他选项是onPause()方法尝试启动某种"徽标活动",它将在onRestart()中停止并将显示在最近的应用程序菜单中.
还有其他/更好的建议吗?谢谢!

android android-3.0-honeycomb

3
推荐指数
1
解决办法
1607
查看次数