小编wal*_*len的帖子

如何在Android studio的布局文件中设置自定义命名空间?

我正在为我的项目使用dragsortlistview库,它需要在XML文件中使用自定义命名空间才能对其进行自定义.

mylayout.xml:

<com.mobeta.android.dslv.DragSortListView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dslv="http://schemas.android.com/apk/res-auto"
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="40dp"
    android:layout_marginRight="40dp"
    android:dividerHeight="10dp"
    android:divider="@color/light_grey"
    android:background="@color/light_grey"
    dslv:collapsed_height="2dp"
    dslv:drag_enabled="true"
    dslv:drag_handle_id="@drawable/drag_handle"
    dslv:drag_scroll_start="0.33"
    dslv:drag_start_mode="onMove"
    dslv:float_alpha="0.6"
    dslv:max_drag_scroll_speed="0.5"
    dslv:remove_enabled="true"
    dslv:remove_mode="flingRemove"
    dslv:slide_shuffle_speed="0.3"
    dslv:sort_enabled="true"
    dslv:track_drag_sort="false"
    dslv:use_default_controller="true"
    />
Run Code Online (Sandbox Code Playgroud)

当我创建这个项目时,我会为dslv命名空间中的每个属性得到这样的错误:

Gradle: No resource identifier found for attribute 'collapsed_height' in package 'net.mypackage'
Run Code Online (Sandbox Code Playgroud)

如何在Android Studio中使用自定义命名空间?

xml android namespaces android-layout android-studio

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

Java:将"this"作为构造函数参数传递以引用创建对象的替代方法

我已经花了一些时间思考不同的解决方案,因为我已经阅读过(我还没有真正熟悉Java),使用它作为构造函数参数通常不是一个好习惯.

我要做的是实例化JobGroupMod类的几个对象,并且对于每个JobGroupMod,我必须创建一定数量的JobMod对象,这些对象必须能够引用它们已经从中生成的JobGroupMod对象.

为了实现这一点,我将"this"传递给JobMod构造函数,但是,即使工作,它也不像是正确的设计.

public class JobGroupMod implements JobGroup {

    public JobGroupMod(Node n,Set<Job> clusterJobs){
        JobMod j=new JobMod(n,this);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在是JobMod类:

public class JobMod implements Job {
     public JobMod(Node n, JobGroup jg){
         setJobGroup(jg);
     }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有更好的解决方法,或者我的解决方案是建议的方式?

java constructor this

9
推荐指数
2
解决办法
4790
查看次数

Java:在创建ConcurrentHashMap对象时使用synchronized(this)是一种可行的做法吗?

我刚刚为我参加的分布式编程课程开发了一个java Web服务服务器.其中一个要求是保证我们项目的多线程安全,因此我决定使用ConcurrentHashMap对象来存储我的数据.最后,我留下了一个关于这段代码的问题:

    public List<THost> getHList() throws ClusterUnavailable_Exception{

    logger.entering(logger.getName(), "getHList");
    if(hMap==null){
        synchronized(this){
            if(hMap==null){
                hMap=createHMap();
            }
        }
    }
    if(hMap==null){
        ClusterUnavailable cu = new ClusterUnavailable();
        cu.setMessage("Data unavailable.");
        ClusterUnavailable_Exception exc = new ClusterUnavailable_Exception("Data unavailable.", new ClusterUnavailable());
        throw exc;
    }
    else{
        List<THost> hList = new ArrayList<THost>(hMap.values());
        logger.info("Returning list of hosts. Number of hosts returned = "+hList.size());
        logger.exiting(logger.getName(), "getHList");
        return hList;
    }
}
Run Code Online (Sandbox Code Playgroud)

在创建concurrenthashmap对象时,是否必须使用synchronized语句,以保证服务在多线程环境中不会出现任何不可预测的行为?

java multithreading web-services synchronized concurrenthashmap

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