小编MBH*_*MBH的帖子

在Greendao中使用2个以上的数据库,使用2个不同的模式 - Android

我在项目中有2个数据库,其中一个是在我打开应用程序时创建的,另一个是由资产提供的.

生成DaoSession时,会为所有模型创建DaoSession.

gradle文件中的Schema也用于这两个数据库

如何区分2个数据库及其模式?

android greendao greendao3

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

RxJava2去抖功能在RecyclerView - Android中无法正常工作

我正在尝试创建一个自定义ImageButton,当用户停止单击按钮1秒钟时,它将累积点击并触发事件.

我用debounce函数来完成这个.

自定义ImageButton:

public class MBImageButton extends ImageButton {

    private AtomicInteger mCounter;
    private Disposable mDisposable;
    private Observable<Object> observable;
    private OnAccumulatedRequestsRead mOnAccumulatedRequestsRead;
    private OnEverClickListener mOnEverClickListener;
    private int emitEveryMilli = 1000; // every 1 second by default
    private boolean shouldDisposeOnDetachFromWindow = true;

    public MBImageButton(Context context) {
        super(context);
        init();
    }

    public MBImageButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public MBImageButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    public void setAccumulatedClickListeners(OnEverClickListener onEverClickListener,
                                             OnAccumulatedRequestsRead onAccumulatedRequestsRead) {
        setOnAccumulatedRequestsRead(onAccumulatedRequestsRead);
        setOnEverClickListener(onEverClickListener);
        initClickObservable(); …
Run Code Online (Sandbox Code Playgroud)

android reactive-programming rx-java rx-android rx-java2

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

模糊地使用'下标' - ios 9 Swift 2.0

我在xcode 7.0上使用Swift 2.0编写ios app.在更新到最新版本的xCode 7.1之前,完全相同的代码完全正常

更新后,我收到此错误:

模糊地使用'下标'

在这些方面:

  override func layoutAttributesForItemAtIndexPath(indexPath: NSIndexPath) -> (UICollectionViewLayoutAttributes!) {
    return self.itemAttributes[indexPath.section][indexPath.row] as! UICollectionViewLayoutAttributes
  }
Run Code Online (Sandbox Code Playgroud)

这是全班:

class CustomCollectionViewLayout: UICollectionViewLayout {

  var numberOfColumns = 7 // the number of columns
  var itemAttributes : NSMutableArray!
  var itemsSize : NSMutableArray!
  var contentSize : CGSize!

  func setColumnNumber(columnNum: Int) {
    numberOfColumns = columnNum
  }

  override func prepareLayout() {
    if self.collectionView?.numberOfSections() == 0 {
      return
    }

    if (self.itemAttributes != nil && self.itemAttributes.count > 0) {
      for section in 0..<self.collectionView!.numberOfSections() {
        let …
Run Code Online (Sandbox Code Playgroud)

ios swift2

6
推荐指数
2
解决办法
4441
查看次数

更新后的Android studio 2问题预览6

我更新到android studio 2.0预览6.

我收到此错误消息:

错误

Error:(1, 0) Plugin is too old, please update to a more recent version, 
     or set ANDROID_DAILY_OVERRIDE environment variable to "aed79d567e57792ed352e708d2b7ca891ff897c6"
Run Code Online (Sandbox Code Playgroud)

当我点击选项 Fix plugin version and sync project

项目同步但没有任何反应.

当我单击"打开文件"时,它会打开build.gradle与App模块关联的文件.它将光标放在这一行:

apply plugin: 'com.android.application'
Run Code Online (Sandbox Code Playgroud)

什么是ANDROID_DAILY_OVERRIDE环境变量?或者这个错误是什么?

android android-studio

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

Retrofit 2.0 分段文件上传发送失败:ETIMEDOUT(连接超时)错误

我将 okhttp 客户端的超时时间增加到 5 分钟:

OkHttpClient client = new OkHttpClient();
client.setConnectTimeout(5, TimeUnit.MINUTES);
client.setReadTimeout(5, TimeUnit.MINUTES);
client.setWriteTimeout(5, TimeUnit.MINUTES);
client.interceptors().add(new Interceptor() {
    @Override
    public Response intercept(Chain chain) throws IOException {
        Request original = chain.request();

        // Customize the request
        Request request = original.newBuilder()
                //.header("Accept", "application/json")
                .header("Authorization", Constants.SERVICE_AUTH_KEY)
                .method(original.method(), original.body())
                .build();

        // Customize or return the response
        return chain.proceed(request);
    }
});

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(Constants.SERVICE_URL)
        .client(client)
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
        .addConverterFactory(GsonConverterFactory.create())
        .build();
Run Code Online (Sandbox Code Playgroud)

我使用 WCF Webservice,我还将超时时间增加到同样的事情。

一切正常,但将文件或图像上传到服务器。

即使在 Android 和 WCF 上增加超时后,我仍然在 android 上收到错误:

java.net.SocketException:发送失败:ETIMEDOUT(连接超时)

这是完整的日志

 W/System.err: …
Run Code Online (Sandbox Code Playgroud)

android retrofit okhttp retrofit2

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

Admob横幅放慢了应用程序并在主线程上做了太多工作 - Android

我有一个包含RecycleView的活动,最多包含30个项目.每个项目包含2到3个文本视图和1个按钮.单击按钮我有动画.

在添加admob横幅之前,性能非常好,滚动顺畅.

添加admob横幅后,滚动正在剪切,单击按钮需要稍作响应.另外,我看到消息显示我在主线程上工作太多了!

关于如何修复它有什么建议吗?或者有什么可以帮助它变得更好?如何在启用admob横幅的情况下顺利滚动?

希望我不是唯一面临这个问题的人!

更新:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:paddingTop="30dp"
        android:paddingBottom="64dp"
        android:clipToPadding="false"
        android:id="@+id/rv_Test"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_gravity="center|bottom"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id" />

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

android admob

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

获取NullPointerException:尝试从字段'int android.view.View.mViewFlags'中读取-Android动画

我实现了一个动画,在回收器视图中有imageview,单击该项目后我想在回收器视图之外的图像视图上做一些动画,因此-我创建了一个新的imageview-将其添加到主容器中-完成了动画-最后我将其从主容器中删除

以下是“回收者”视图中单击项的代码:

码:

final ImageView iv = new ImageView(getContext());
iv.setImageDrawable(fromView.getDrawable());
iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
iv.setLayoutParams(fromView.getLayoutParams());
v_mainContainer.addView(iv);

AnimationSet animatinSet = new AnimationSet(false);
animatinSet.setFillAfter(false);
animatinSet.setFillBefore(true);
animatinSet.setDuration(1500);
animatinSet.setInterpolator(new DecelerateInterpolator());

// ... rest of the animation 

animatinSet.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {

    }

    @Override
    public void onAnimationEnd(Animation animation) {
        v_mainContainer.removeView(iv);
    }

    @Override
    public void onAnimationRepeat(Animation animation) {

    }
});

animatinSet.setAnimationListener(animationListner);
animatinSet.setDuration(1500);

iv.startAnimation(animatinSet);
Run Code Online (Sandbox Code Playgroud)

当我在1个视图上运行此动画时,它可以正常工作。但是,当我在同一视图上多次运行动画时,以及在一个视图上运行另一个动画之前,出现以下错误。

错误日志:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.mbh.testApp, PID: 9628
    java.lang.NullPointerException: Attempt to read from field 'int android.view.View.mViewFlags' on a null object …
Run Code Online (Sandbox Code Playgroud)

animation android android-animation

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

删除表vs删除其内容sqlite

在我的应用程序中,我必须删除表的全部内容并重新填充多次

在这种情况下,我有两个解决方案:

1-下降,撤回并填写表格

"DROP TABLE IF EXISTS TABLE_NAME"
Run Code Online (Sandbox Code Playgroud)

2-删除所有内容并重新填充

"DELETE FROM TABLE_NAME"
Run Code Online (Sandbox Code Playgroud)

现在哪种解决方案更有效?

database sqlite android-sqlite

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

如何在片段中播放视频

我想在片段中显示视频我已经使用此代码播放它,它有效

   View rootView = inflater.inflate(R.layout.quranic_section, container, false);

    VideoView view = (VideoView)rootView.findViewById(R.id.video_view);
    String path = "android.resource://" + getActivity().getPackageName() + "/" + R.raw.howtopray;
    view.setVideoURI(Uri.parse(path));
    view.start();
Run Code Online (Sandbox Code Playgroud)

但我想添加像播放停止恢复这样的按钮.. 我该怎么做?

android android-fragments android-videoview

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

iPhone闪屏作为短mp4视频swift ios

我正在尝试制作一个简短的.mp4视频作为启动画面,以便在启动应用时显示它.

那有什么例子吗?

ios swift ios8

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