小编Neh*_*kla的帖子

从意图处理程序提交片段事务时出错

我试着写简单的音乐播放器并面对这样的问题.在我的UI中,我有几个片段,用于显示歌曲的不同模式(例如,所有音乐,所选文件夹中的音乐,播放列表中的音乐等).我也有一个播放音乐的服务.

当用户在播放状态下关闭播放器时我想保存UI状态(即当前显示片段)并在再次打开播放器后恢复该状态(如果用户关闭播放器处于暂停状态则不需要).

为了保存状态我使用我的Service,如上所述.在onDestroy()我的活动方法中,我将所有需要的数据用于恢复意图和调用startService(intent).服务将此数据保存到本地变量.在onCreate()我的活动方法中,我startService用意图调用,包含已保存状态的请求.在服务中,我将保存的数据置于意图中并将其发送到Activity使用LocalBroadcastManager.getInstance(this).sendBroadcast(intent)方法.在BroadcastListener我的内部类中,我Activity收到此意图并提取数据.看来没关系.

但是当我尝试恢复时Fragments,问题就开始了,当用户关闭播放器时会显示.应用程序崩溃unhandled exception.这里是backstack:

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
        at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1377)
        at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1395)
        at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:637)
        at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:616)
        at com.borune.test.MainActivity.switchFragments(MainActivity.java:58)
        at com.borune.test.MainActivity$MyServiceListener.onReceive(MainActivity.java:102)
        at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297)
        at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46)
        at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5032)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

我在谷歌搜索这个例外,但所有提出的解决方案对我的情况都没有帮助.我写了一个重复描述问题的简单项目.这是代码:

MainActivity.java:

public class MainActivity extends ActionBarActivity { …
Run Code Online (Sandbox Code Playgroud)

android

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

如何在MPAndroidChart中创建一条长红线(限制线)

我正在使用MPAndroidChart库版本2.2.4.我的要求是我想在a中设置三个标记线,其BarChart值为"Minimum","Average"和"Maximum",如下图所示,但我找不到任何解决方案.

带有三条红色限制线的折线图,标记为max,average和min

android mpandroidchart

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

如何在android studio中混淆包名称

我使用以下代码成功混淆了类名和方法

buildTypes {
    release {
        shrinkResources false
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}
Run Code Online (Sandbox Code Playgroud)

在应用程序级build.gradle文件中

-dontwarn mypackage.**
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-dontwarn
Run Code Online (Sandbox Code Playgroud)

proguard-rules.pro

但我的问题是包名没有被混淆。

那我怎样才能达到它,请帮忙。

谢谢

obfuscation android android-studio android-proguard

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

如何在ActionBar中对齐菜单项

嗨我有三个菜单项默认显示在右侧.

我想在左边显示一个菜单,在右边显示另外两个菜单.

我的Menu.xml文件是

   <menu xmlns:android="http://schemas.android.com/apk/res/android" >

   <item
    android:id="@+id/action_version"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_version"/>
   <item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>
   <item
    android:id="@+id/action_refresh"
    android:actionViewClass="android.support.v7.widget.RefreshView"
    android:icon="@drawable/ic_refresh_holo_dark"
    android:orderInCategory="100"
    android:gravity ="left"
    android:layout_gravity="left"
    android:showAsAction="ifRoom|collapseActionView"
    android:title="Refresh"/>

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

如何将最左侧的刷新菜单与右侧的其他刷新菜单对齐.

android menuitem android-widget

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

如何为Android应用程序实施密码的智能锁定

有没有人知道Smart Lock?它是如何工作的?

我想在Android应用程序中开发一个为密码实现Smart Lock的应用程序.

我关注的是https://developers.google.com/identity/smartlock-passwords/android/.

我已经初始化了 GoogleApiClient

 mCredentialsApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Auth.CREDENTIALS_API)
            .build();
Run Code Online (Sandbox Code Playgroud)

并生成Credentialas的实例

 final Credential credential = new Credential.Builder(email)
            .setPassword(password)
            .build();
Run Code Online (Sandbox Code Playgroud)

用来保存凭证Credentials API,我用过

Auth.CredentialsApi.save(mCredentialsClient, credential).setResultCallback(
 new ResultCallback() {
  @Override
  public void onResult(Status status) {
      if (status.isSuccess()) {
          // Credentials were saved
      } else {
          if (status.hasResolution()) {
              // Try to resolve the save request. This will prompt the user if
              // the credential is new.
              try {
                  status.startResolutionForResult(this, RC_SAVE);
              } catch …
Run Code Online (Sandbox Code Playgroud)

android credentials google-play-services google-smartlockpasswords

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

拍摄图像并裁剪

我正在学习本教程:http://mobile.tutsplus.com/tutorials/android/capture-and-crop-an-image-with-the-device-camera/

我正在尝试创建一个简单的活动,其中包含一个" take picture" Button和一个ImageView简单的拍照,然后打开Android内置的裁剪活动.我可以毫无意外地打开相机,但是,在拍摄照片时,代码不会将照片发送到裁剪活动.

调用裁剪活动时似乎崩溃了.我不确定为什么会这样; 我完全按照这个例子(除了我不需要的开始XML的东西),我查看了代码,一切似乎都有意义.我确定这是造成这种情况的一个小错误.这是我的活动代码:

package com.example.project;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class ImageChoose extends Activity implements OnClickListener {

//keep track of camera capture intent
final int CAMERA_CAPTURE = 1;
//captured picture uri
private Uri picUri;
final int PIC_CROP = 2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_image_choose); …
Run Code Online (Sandbox Code Playgroud)

java android

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

无法更新ICEAuthority文件/home/neha/.ICEAuthority

嗨,Could not update ICEAuthority file /home/neha/.ICEAuthority当我从Ubantu 12.4上的帐户登录时,我遇到了问题.

请帮我

linux operating-system

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

使用Android NDK编译本机C++共享对象

我已经.so在Linus上通过C++ 生成了一个文件并且.so现在生成了文件我已经交叉编译了这个.so文件,Android ARM所以我必须通过它来编辑它Android NDK以便.so 在我的android项目中使用新的genrated .

所以任何人都可以帮助我在我的Android项目中放置Linux生成的.so文件以及在Make文件(Android.mk)中添加什么内容,以便它可以.so使用我之前生成的Linux文件中的现有方法生成新.so文件.

我希望我的问题清楚,如果不是,请告诉我.

请帮我.提前致谢

c++ android android-ndk

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

使用 Robolectric 进行片段测试时出现“活动已被破坏”错误

我正在尝试Fragment在 Android 上进行测试Robolectric,我知道还有一些其他帖子关于FragmentActivity当它没有存储在某个变量中时的问题。

但是,我试图使这篇文章起作用,您可以看到在这种情况下FragmentActivity对象引用被保留,因此应该没有问题。这是基类:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;

import org.junit.After;
import org.robolectric.Robolectric;
import org.robolectric.util.ActivityController;

public class FragmentTestCase<T extends Fragment> {

private static final String FRAGMENT_TAG = "fragment";

private ActivityController controller;
private FragmentActivity activity;
private T fragment;

public void startFragment(T fragment) {
    this.fragment = fragment;
    controller = Robolectric.buildActivity(FragmentActivity.class);
    activity = (FragmentActivity) controller.create().start().visible().get();
    activity.getSupportFragmentManager()
            .beginTransaction()
            .add(fragment, FRAGMENT_TAG).commit();
}

@After
public void destroyFragment() {
    if (fragment != null) {
        activity.getSupportFragmentManager()
                .beginTransaction()
                .remove(fragment)
                .commit(); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments robolectric

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

当进入另一个活动Android应用程序崩溃

我正在尝试TextViews使用SQLiteDataBase 填充第二个事件.当用户点击该项目时,ListView他/她可以在第二个上查看事件的详细信息,Activity但每当我点击某个事件时它就会崩溃.

MainActivity.java

  myList.setAdapter(myCursorAdapter);

    myList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Cursor myCursor = (Cursor) myList.getItemAtPosition(position);
            String pickedString = myCursor.getString(1);

            Intent intent = new Intent(getApplicationContext(),EventDetails.class);
            intent.putExtra("name_var", pickedString);
            startActivity(intent);
        }
    }
Run Code Online (Sandbox Code Playgroud)

DBHelper:

public ArrayList<String> getEvent(String name)
{
    ArrayList<String> array_list = new ArrayList<String>();
    //hp = new HashMap();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res =  db.rawQuery( "select * from events WHERE name='" +name+"'", null );
    res.moveToFirst();

    array_list.add(res.getString(res.getColumnIndex(EVENTS_COLUMN_NAME))); …
Run Code Online (Sandbox Code Playgroud)

java sqlite android

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