小编Jak*_*ton的帖子

区分常规菜单KeyEvent与IME打开

在侦听ActionBarSherlock中的关键事件时,为了在ICS前设备上显示溢出菜单,我正面临一个有趣的问题.看起来我无法区分简单的按键与用户长按菜单键以显示IME的情况.两个KeyEvent实例完全相同,看起来像这样:

是否有一种直接的方法来区分这两个不同的事件?

android android-event actionbarsherlock

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

具有适当类路径的Maven插件分叉过程

我正在创建一个Maven插件,它具有相当独特的正确操作要求:它需要生成自己的新进程,然后等待这些进程完成任务.

虽然这在命令行上相对简单,但Maven插件不会像传统Java代码那样被调用,因此没有类路径.我无法弄清楚如何在插件中解析正确的类路径,这样我就可以生成一个新的JVM(在插件中调用另一个类的Main方法).

使用当前工件MavenProject我可以获得Artifact对自己(插件)的引用并获取它在本地Maven存储库中的相对目录:

Artifact self = null;
for (Artifact artifact : project.getPluginArtifacts()) {
  if ("my-group-id".equals(artifact.getGroupId()) && "my-artifact-id".equals(artifact.getArtifactId())) {
    self = artifact;
    break;
  }
}
if (self == null) {
  throw new MojoExecutionException("Could not find representation of this plugin in project.");
}
for (ArtifactRepository artifactRepository : project.getPluginArtifactRepositories()) {
  String path = artifactRepository.pathOf(self);
  if (path != null) {
    getLog().info("relative path to self: " + path);
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)

如何获取对其所有依赖项(和传递依赖项)的引用,以便我可以为新调用构造完整的类路径?我看到它self有一个依赖过滤器,但我不知道在哪里应用它.

这是在插件中创建"我自己"的新流程的正确方法吗?有没有更好的办法?

maven-plugin maven

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

操作栏:关于可供性图标

操作栏中,下面显示了一个名为"up ADVance"的图标(最左边一个):

在此输入图像描述

在我的Activity onCreate()方法中,我设置了以下内容:

actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 如何onClickListener在这个"up ADVance"图标上实现,这样当用户点击它时,应用程序将被导航到上层层次结构

  2. 如何在动作栏上只有左箭头没有"up ADVance"部分的android默认图标?

android actionbarsherlock

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

是否可以使用Butterknife在android中的espresso Test clases中注入视图?

是否可以使用Butterknife注入测试类的视图?视图被注入到由MainActivity类创建和提交的片段中.

这是我的测试类的代码:

public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {

private MainActivity mMainActivity;
private Button learnButton;
private Button teachButton;

@SuppressWarnings( "deprecation" )
public MainActivityTest() {
    super("com.example.application.app", MainActivity.class);
}

protected void setUp() throws Exception {
    super.setUp();

    mMainActivity = getActivity();
    learnButton = (Button) mMainActivity.findViewById(R.id.buttonLearn);
    teachButton = (Button) mMainActivity.findViewById(R.id.buttonTeach);
}
Run Code Online (Sandbox Code Playgroud)

但是我使用Butterknife在我的片段中注入视图:

public class ChooseActionFragment extends Fragment {

@InjectView(R.id.buttonTeach) Button buttonTeach;
@InjectView(R.id.buttonLearn) Button buttonLearn;

public ChooseActionFragment() { }

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    ButterKnife.inject(this, rootView); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-espresso butterknife

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

ActionbarSherlock不包含Action Bar的"溢出"部分(在Android 2.1上)

我正在开发Android 2.1 API 7应用程序.要实现操作栏,我正在使用ActionbarSherlock库.

使用sherlock库一切顺利,我可以使用以下代码在我的项目中使用它实现操作栏.

res/menu/action_menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/new_payment_1"
          android:title="@string/new_payment"       
          />    

    <item 
          android:id="@+id/label_1"
          android:icon="@drawable/ic_launcher"
          android:showAsAction="always"/>

    <item 
          android:id="@+id/label_2"
          android:title="text2"
          android:showAsAction="always"/>

    <!-- overflow section of action bar -->
    <item android:title="title2"/>

    <item android:title="title3"/>

    <item android:title="title4"/>

</menu>
Run Code Online (Sandbox Code Playgroud)

在我的Activity类中:

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

我用上面的代码成功地获得了操作栏.在Android 3.2平台上没问题.

但问题是如果我在Android 2.1平台上运行我的应用程序,操作栏上的操作栏没有溢出部分.为什么???在旧Android平台上使用Sherlock库时,任何人都遇到过同样的问题?

(操作栏的PS"溢出部分"是操作栏的最右侧部分,它隐藏了一些项目,如弹出菜单.更多信息,请点击此处)

android actionbarsherlock

5
推荐指数
1
解决办法
5344
查看次数

尽管有flush(),OkHttp在上传数据之前会缓冲〜800kb

我正在尝试发布图像的上传进度,使用okhttp作为我的客户端和mimecraft来上传它们以打包多部分文件。

当数据被写入套接字时,我添加了日志以写入字节数(如果我能正确告诉的话,以4kb的块为单位),然后上传。

问题是,虽然每次写入数据块时我都会在输出流上调用flush,但直到将〜800kb写入输出流后,似乎都没有上载。一旦达到该点,它似乎会上传〜100kb,然后该应用再向输出流写入另外100kb(如释放的空间,可以写更多一点),然后继续。

这样的结果是(通过1.2mb文件)前800kb几乎立即被写入/报告,然后开始上载(通过charles网络软件跟踪),然后在下一个800kb中开始读取/写入/上载100kb几秒钟后,一旦我将最后一个字节写入输出流,应用程序就会报告已写入100%的上传内容。尽管这是正确的,但由于网络客户端仍在上传仍在网络缓冲区中的最后800kb,它又在那儿坐了5-10秒,然后才完成请求。

有没有人有这种经验,或者知道这是否是okhttp中的常见问题?

干杯

编辑:如果我上传的文件少于800kb,我测试了250kb和500kb,它们在上传之前立即被100%写入流中,但是3mb的图像仍将上传800kb,然后以大约100kb的块数滴答,并且每次写入一些文件时,写入循环都会坐在那里,另外写入100kb。

android bufferedoutputstream okhttp mimecraft

5
推荐指数
1
解决办法
1195
查看次数

Android库导入删除R.

我正在制作一个新的Android应用程序,我正在使用动作栏sherlock库.

我将该库作为项目导入并出现了两个错误.首先,我的所有布局都没有在gen.R文件中找到,因为我没有gen.R文件."R无法解析为变量"

其次,我在一些论坛中读到干净和重建可以提供帮助,但这并没有解决我的问题.干净后,我收到了这个错误:

[2011-11-29 12:17:08 - DroidFridge] C:\Users\Felix Wackernagel\Downloads\JakeWharton-ActionBarSherlock-79a1bbc\library\res\values-v11\abs__styles.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Holo'.
[2011-11-29 12:17:08 - DroidFridge] C:\Users\Felix Wackernagel\Downloads\JakeWharton-ActionBarSherlock-79a1bbc\library\res\values-v11\abs__styles.xml:47: error: Error: No resource found that matches the given name: attr 'android:actionBarSize'.
[2011-11-29 12:17:08 - DroidFridge] C:\Users\Felix Wackernagel\Downloads\JakeWharton-ActionBarSherlock-79a1bbc\library\res\values-v11\abs__styles.xml:48: error: Error: No resource found that matches the given name: attr 'android:actionBarStyle'.
[2011-11-29 12:17:08 - DroidFridge] C:\Users\Felix Wackernagel\Downloads\JakeWharton-ActionBarSherlock-79a1bbc\library\res\values-v11\abs__styles.xml:50: error: Error: No resource found that matches the given name: attr 'android:actionBarTabBarStyle'.
[2011-11-29 12:17:08 …
Run Code Online (Sandbox Code Playgroud)

android actionbarsherlock

4
推荐指数
1
解决办法
7353
查看次数

从Maven Central动态链接到最新的'jar-with-dependencies'

我正在尝试使用Maven中央API为最新版本的工件提供动态下载链接.虽然这适用于普通的jar,但我似乎无法将其链接到工件的'jar-with-dependencies'版本.

使用该com.ning:nagios工件,可以下载最新版本

http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.ning&a=nagios&v=LATEST

假设我可以使用l查询参数(基于链接的API)来指定'jar-with-dependencies'分类器,但链接只下载普通的jar.

http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.ning&a=nagios&v=LATEST&l=jar-with-dependencies

有没有办法链接到这个版本的工件?

nexus sonatype maven maven-central

4
推荐指数
1
解决办法
916
查看次数

ActionBar Sherlock - Actionbar中的Backgroundimage

我想设置一个BackgroundImage到我用"ActionBar Sherlock"库导入的ActionBar.但是,我无法在互联网上找到任何关于如何用XML明确设置BackgroundImage的链接.

这里有人有提示他可以给我:)?

android actionbarsherlock

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

取消"该方法不会覆盖继承的方法,因为它对其他包是私有的."

如何使用@SuppressWarning注释抑制以下错误?

该方法Foo.trololo()不会覆盖继承的方法,Bar因为它对其他包是私有的

据我所知,唯一的方法是覆盖@SuppressWarning("all")我不希望做的整个方法.


为了澄清:两种方法的命名和范围都是有意识的选择,并且两个类被故意放入不同的包中,因为知道方法彼此不可见.我只想宣布我承认我在做什么,不想被警告.

java eclipse annotations

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