小编L. *_*ter的帖子

如何重写java泛型方法

我有一个只包含一个通用方法的接口:

public interface Presenter {
    <T> void query(T queryParameter);
}
Run Code Online (Sandbox Code Playgroud)

现在,我想定义 的子类,Presenter并且类型为String,就像这样:

public class IpQueryPresenter implements Presenter {
    void query(String queryParameter) {
         //do something here...
    }
}
Run Code Online (Sandbox Code Playgroud)

如何定义呢?

我看到您所有的答案都定义了接口名称的类型,但这是必须的吗?如果我只想定义一个通用方法并覆盖它,是否可以?

java generics

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

当RecyclerView中的notifyDataSetChanged时如何使指定的项目不更新

我有一个项目,RecyclerView当我打电话时不需要更新notifyDataSetChanged。

但是我没有找到任何方法可以使指定的项目避免更新。是否有可能做到这一点 ?


我需要这样做,因为该项目是一个WebView,它已经加载了一个 html 页面,如果我调用notifyDataSetChanged,该项目将闪烁。

为什么我张贴这个问题的原因是避免的闪光灯WebView时notifyDataSetChanged(见这quesion)。在使用notifyItemRangeXXX方法失败后,我发布了这个问题。

但是看了大家的回答和评论后,好像在使用notifyDataSetChanged.

android notifydatasetchanged android-recyclerview

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

如何声明在 kotlin 伴侣对象中声明的本机 cpp 方法?

我有一个 Kotlin 类,它只声明了一些用于 Kotlin 和 C/C++ 交互的方法:

class JNILib {

    companion object {

        external fun getAppId(): String

        init {
            System.loadLibrary("native-code")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我在声明本机方法时遇到了问题。我试过

extern "C"
JNIEXPORT jstring JNICALL
Java_com_package_JNILib_getAppId(
        JNIEnv *env, jobject /* this */){
    // wrong
}

extern "C"
JNIEXPORT jstring JNICALL
Java_com_package_JNILib_Companion_getAppId(
        JNIEnv *env, jobject /* this */){
    // wrong
}
Run Code Online (Sandbox Code Playgroud)

android android-ndk kotlin kotlin-android-extensions

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

如何获取ViewPager的当前View,这是onPageSelected中向用户显示的一个视图

我使用这种方式来获取ViewPager的当前View:

private class OuterAdapter extends PagerAdapter{

    private SwipingVideoPage currentPage;

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        SwipingVideoPage page = new SwipingVideoPage();
        container.addView(page);
        return page;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View)object);
    }

    @Override
    public void setPrimaryItem(ViewGroup container, int position, Object object) {
        currentPage = (SwipingVideoPage)object;
        super.setPrimaryItem(container, position, object);
    }

    public SwipingVideoPage getCurrenPage() {
        return currentPage;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想可以打电话ViewPager.getAdapter.getCurrentPage()得到当前的看法。但我发现它不适用于ViewPager.OnPageChangeListener.onPageSelected():

private class OuterChangeListener implements ViewPager.OnPageChangeListener {

    @Override
    public void onPageSelected(int position) { …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-pageradapter

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