我想开发一个Android应用程序,但我不想使用默认控件(按钮,复选框,单选按钮等).有没有办法自定义这些控件,使其看起来更好.如果是这样,一些教程或指南将帮助我很多.谢谢....
我想在ListView中显示联系人的照片.当有大量联系人时,我正面临性能问题(滚动不顺畅).我正在使用ArrayAdapter的getView方法将联系人照片分配给ImageView.当不使用图像时,滚动是平滑的.
但默认的联系人应用程序滚动非常顺利.所以我的应用程序存在性能问题.
如何提高性能?请建议.
private class MyArrayListAdapter extends ArrayAdapter<ContactsBook> implements OnItemClickListener{
private ArrayList<ContactsBook> mContacts;
private Context mContext;
public MyArrayListAdapter(Context context, int textViewResourceId, ArrayList<ContactsBook> contacts) {
super(context, textViewResourceId, contacts);
mContacts= contacts;
mContext=context;
}
@Override
public View getView(int position, View converview, ViewGroup parent){
View view=converview;
ViewHolder viewHolder=new ViewHolder();
if(view==null){
LayoutInflater inflater=(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view=inflater.inflate(R.layout.phone_row, null);
viewHolder.tvName=(TextView)view.findViewById(R.id.tvContact);
viewHolder.tvPhoneNo=(TextView)view.findViewById(R.id.tvPhoneNo);
viewHolder.qcBadge=(QuickContactBadge)view.findViewById(R.id.qContact);
view.setTag(viewHolder);
}
else
viewHolder=(ViewHolder) view.getTag();
ContactsBook cb=mContacts.get(position);
if(cb!=null){
Uri contactPhotoUri = ContentUris.withAppendedId(Contacts.CONTENT_URI,cb.getContactIndex());
BitmapDownloaderTask bdTask=new BitmapDownloaderTask(viewHolder.qcBadge);
bdTask.execute(contactPhotoUri.toString());
viewHolder.qcBadge.assignContactUri(contactPhotoUri);
viewHolder.qcBadge.setImageBitmap(framePhoto(BitmapFactory.decodeResource(getResources(), R.drawable.ic_contact_list_picture)));
viewHolder.tvName.setText(getContactDisplayName(cb.getContactIndex()));
viewHolder.tvPhoneNo.setText(getContactPhoneNo(cb.getContactIndex()));
}
return view;
}
class BitmapDownloaderTask …Run Code Online (Sandbox Code Playgroud) 我已经开始学习Facebook的Flux架构了.我正在尝试制作一个简单的登录屏幕.我已经关注了flux-chat示例应用程序来创建屏幕.我有一个ServerActionCreator和WebAPIUtils之间的循环依赖问题.请参阅下面的代码.
ServerActionCreator.js
var AppDispatcher = require('../dispatcher/AppDispatcher');
var Constants = require('../constants/Constants');
var WebAPIUtils = require('../utils/WebAPIUtils');
var ActionTypes = Constants.ActionTypes;
module.exports = {
receiveLoginStatus: function(status){
AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVE_LOGIN_STATUS,
status: status
});
},
loginSubmit: function(data){
WebAPIUtils.login(data);
}
}
Run Code Online (Sandbox Code Playgroud)
WebAPIUtils.js
var ServerActionCreator = require('../actions/ServerActionCreator');
module.exports = {
login: function (data) {
//Mock server API call
var status = JSON.parse('{"status":"success"}');
ServerActionCreator.receiveLoginStatus(status);
}
};
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,ServerActionCreator依赖于WebAPIUtils,而WebAPIUtils依赖于ServerActionCreator.
我认为,由于循环依赖,WebAPIUtils变成一个空对象,并且当调用ServerActionCreator中的loginSubmit函数时,我得到"未定义不是函数"错误.截图如下.

如何处理这种情况?还是有其他办法吗?任何帮助深表感谢.
当我尝试在我的play框架应用程序的application.conf中使用MongoDB驱动程序时
db.default.driver=com.mongodb
Run Code Online (Sandbox Code Playgroud)
我收到了Driver not found错误.我在Build.scala中为MongoDB驱动程序配置了依赖项.
我正在使用MongoDB mongo-java-driverv 2.11.1的官方Java驱动程序.我希望这个驱动程序与Ebean一起使用.
要使其db.default.driver正常工作,正确的类名是什么?