小编Azh*_*r92的帖子

onfling()由于某种原因没有被调用

我正在尝试在我的应用程序中实现手势,由于某种原因,没有调用onfling().我尝试阅读关于此的大量帖子,并尝试修复我的代码,但它无法正常工作.以下是我的代码.请看一看:

public class MainMenuSlider extends Activity implements OnClickListener{

protected MyGestureListener myGestureListener;

private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;

private ViewFlipper vf;
private Animation animFlipInNext,animFlipOutNext, animFlipInPrevious, animFlipOutPrevious;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.mainmenuslider);
    myGestureListener = new MyGestureListener(this);

    //vf for viewflipper
    vf=(ViewFlipper)findViewById(R.id.ViewFlipper01);
    animFlipInNext = AnimationUtils.loadAnimation(this, R.anim.flipinnext);
    animFlipOutNext = AnimationUtils.loadAnimation(this, R.anim.flipoutnext);
    animFlipInPrevious = AnimationUtils.loadAnimation(this, R.anim.flipinprevious);
    animFlipOutPrevious = AnimationUtils.loadAnimation(this, R.anim.flipoutprevious);

    imageone = (ImageView) findViewById(R.id.imageone);
    imagetwo = (ImageView) findViewById(R.id.imagetwo);
    imageone.setOnClickListener(myGestureListener); …
Run Code Online (Sandbox Code Playgroud)

android gesture onfling

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

使用协程对任务进行排队

我最近开始阅读有关协程的内容,我想询问某个场景。

考虑一个带有一个按钮的简单屏幕。单击后,它会执行一堆打印语句和一些延迟(其间)。到目前为止,我正在使用协程来实现这一目标。

现在,我的问题是,如果用户反复向该按钮发送垃圾邮件,是否有一种方法可以将任务排队并在专用线程上逐个执行(一旦前一个任务执行完毕)?

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        val thread = newSingleThreadContext("thread")

        binding.button1.setOnClickListener {

            CoroutineScope(thread).launch {
               Log.d("ABC", " TEXT1 ")
               delay(1000)
               Log.d("ABC", " TEXT2 ")
               delay(2000)
            }

        }

}
Run Code Online (Sandbox Code Playgroud)

现在,如果我执行此操作,它会正常运行,并且如果我按一次按钮,我就可以看到日志:

TEXT1
TEXT2
Run Code Online (Sandbox Code Playgroud)

但是,如果我向按钮发送垃圾邮件,我会看到以下内容:

TEXT1
TEXT1
TEXT2
TEXT1
TEXT2
TEXT2
Run Code Online (Sandbox Code Playgroud)

基本上,根据我的观察,发生的情况是,当用户按下按钮时,协程就会在没有任何等待或检查的情况下执行。所以,我的问题是,如何编辑代码,以便当用户向按钮发送垃圾邮件时,每个 courotine 都会按顺序执行,并且每个 courotine 在下一个开始执行之前完成,以便输出如下所示:

TEXT1
TEXT2
TEXT1
TEXT2
TEXT1
TEXT2
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlin-coroutines

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

Jackson JsonMappingException:无法反序列化实例

我正在尝试使用Jackson将我的json数据转换为POJO对象.这是MainActivity和我的POJO类代码.我基本上得到一个JsonMappingException错误.我还附上了整个日志.

MainActivity.java:

ObjectMapper mapper = new ObjectMapper();
    mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
    try {
        List<Entries> results = mapper.readValue(new URL("http://collegewires.com/android/jacksoncw.json"), new TypeReference<List<Entries>>(){});
        for(int i=0;i<results.size();++i){
            System.out.println(results.get(i).getName());
            out = out + " ## " + results.get(i).getName();
            txt.setText("1111");
        }
    } catch (JsonParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    } catch (JsonMappingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

Entries.java(这是POJO)

package com.collegewires.jackson;

public …
Run Code Online (Sandbox Code Playgroud)

java android json jackson

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

无法在Java和Kotlin混合项目上注入Dagger2

我有一个主要用Java编写的项目,但是我正在慢慢转移到Kotlin从事新活动。该项目应用了Dagger2,并且与基于Java的活动一起使用时,可以完美地工作。但是,当我创建Kotlin活动并尝试注入时,出现以下错误。

LoginIDPresenter没有@Inject构造函数或通过@Provides-或-带@Produces注释的方法不能提供。此类型支持成员注入,但不能隐式提供。

   void inject(LoginIDActivity loginIDActivity);

     com.maxis.mymaxis.ui.logindigitalid.LoginIDPresenter is injected at
         com.maxis.mymaxis.ui.logindigitalid.LoginIDActivity.loginIDPresenter
     com.maxis.mymaxis.ui.logindigitalid.LoginIDActivity is injected at
         com.maxis.mymaxis.injection.component.ActivityComponent.inject(loginIDActivity)
Run Code Online (Sandbox Code Playgroud)

再次重申一下,当我在Java活动中进行注入时,它可以完美地工作。另外,我的Module和Component文件全部使用Java。仅当我创建Kotlin活动并尝试在其中进行注入时,我才会收到错误。

LoginIDPresenter.kt

class LoginIDPresenter : BasePresenter<LoginIDMvpView>() {

    lateinit var mContext : Context

    @Inject
    fun LoginIDPresenter(@ActivityContext context: Context){
        mContext = context
    }

    override fun attachView(loginIDMvpView: LoginIDMvpView) {
        super.attachView(loginIDMvpView)
    }

    override fun detachView() {
        super.detachView()
        mCompositeSubscription.clear()
    }
}
Run Code Online (Sandbox Code Playgroud)

LoginIDActivity.kt

class LoginIDActivity : BaseActivity(), LoginIDMvpView {

    @Inject lateinit var loginIDPresenter : LoginIDPresenter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        loginIDPresenter.attachView(this)
    }

    override …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection kotlin dagger dagger-2

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