我正在为我的项目使用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中使用自定义命名空间?
我已经花了一些时间思考不同的解决方案,因为我已经阅读过(我还没有真正熟悉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 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
java ×2
android ×1
constructor ×1
namespaces ×1
synchronized ×1
this ×1
web-services ×1
xml ×1