public class ExpenseAdapter extends RealmRecyclerViewAdapater<Expense> {
final Context context;
private Realm realm;
private LayoutInflater inflater;
public ExpenseAdapter(Context context) {
this.context = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// inflate a new card view
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.expense_recycler_view, parent, false);
// view.setOnCreateContextMenuListener(this);
return new CardViewHolder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
realm = RealmController.getInstance().getRealm();
final Expense expense = getItem(position);
final Tour tour = new Tour();
final CardViewHolder holder = (CardViewHolder) viewHolder;
String s = "";
RealmResults<Tour> r = realm.where(Tour.class).findAll();
realm.beginTransaction();
s = r.get(position).getEventId();
realm.commitTransaction();
holder.textExpense.setText(expense.getAmount() + " E: " + expense.getEventId());
holder.textDescription.setText(expense.getDescription() + " T: " + s);
holder.card.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View content = inflater.inflate(R.layout.activity_add_new_expense, null);
final EditText editAmount = (EditText) content.findViewById(R.id.edtxt_expense);
final EditText editDescription = (EditText) content.findViewById(R.id.edtxt_description);
editAmount.setText(expense.getAmount());
editDescription.setText(expense.getDescription());
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(content)
.setTitle("Edit Event")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
RealmResults<Expense> results = realm.where(Expense.class).findAll();
realm.beginTransaction();
results.get(position).setAmount(editAmount.getText().toString());
results.get(position).setDescription(editDescription.getText().toString());
realm.commitTransaction();
notifyDataSetChanged();
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
});
}
@Override
public int getItemCount() {
if (getRealmAdapter() != null) {
return getRealmAdapter().getCount();
}
return 0;
}
public static class CardViewHolder extends RecyclerView.ViewHolder {
public CardView card;
public TextView textExpense;
public TextView textDescription;
public CardViewHolder(View itemView) {
// standard view holder pattern with Butterknife view injection
super(itemView);
card = (CardView) itemView.findViewById(R.id.card_expense);
textExpense = (TextView) itemView.findViewById(R.id.text_amount);
textDescription = (TextView) itemView.findViewById(R.id.text_description);
}
}
}
提前致谢!!!
这就是为什么:
RealmResults<Expense> results = realm.where(Expense.class).findAll();
realm.beginTransaction();
results.get(position).setAmount(editAmount.getText().toString());
results.get(position).setDescription(editDescription.getText().toString());
realm.commitTransaction();
notifyDataSetChanged(); // <--------- this causes the crash
问题:
1.)如果您在事务中操作结果集,那么您应该在事务中执行查询
realm.beginTransaction();
RealmResults<Expense> results = realm.where(Expense.class).findAll();
Expense expense = results.get(position);
expense.setAmount(editAmount.getText().toString());
expense.setDescription(editDescription.getText().toString());
那个指南是过时的垃圾,我推荐使用我的:
如何像一个冠军一样使用Android领域,以及如何判断自己是否做错了
以及相应的源示例。
3.6 ABP领域层 - 领域事件 在C#中,一个类可以定义其专属的事件并且其它类可以注册该事件并监听,当事件被触发时可以获得事件通知。这对于对于桌面应用程序或独立的Windows Service来说非常有用。但是, 对于Web应用程序来说会有点问题,因为对象是根据请求(request)被创建并且它们的生命周期都很短暂。我们很难注册其它类别的事件。同样地,直接注册其它类别的事件也造成了类之间的耦合
3.4 ABP领域层 - 领域服务 3.4.1 简介 领域服务(或者服务,在DDD模式中)是被用来执行领域操作或者业务规则的。Eric Evans 在他的DDD书中这样说过:一个好的Service应该有以下三个特征: 与领域概念相关的操作不是Entity或Value Object 的一个自然部分; 接口是根据领域模型的其它元素定义的; 操作是无状态的。 领域服务和Application Servi
问题内容: 我正在尝试在Realm中使用Optional Int,并且出现了我认为的旧错误。 码 错误 我正在将Realm 0.96.1与XCode 7.1一起使用 我的境界文档中了解它说,不支持作为,但https://twitter.com/realm/status/656621989583548416。那是来自Realm Twitter的,这就是为什么我感到困惑。被支持还是仍然没有? 问题答案
DDD DSL DSL(domain-specific languages)即领域特定语言,唯一能够确定DSL边界的方法是考虑“一门语言的一种特定用法”和“该语言的设计者或使用者的意图。在试图设计一个DSL的时候,发现了一些有意思的简单的示例。 DSL示例 jQuery 最流行的DSL jQuery是一个Internal DSL的典型的例子。它是在一门现成语言内实现针对领域问题的描述。 $('.m
如何使用嵌入式iframe方法解决跨域问题?意思是我有域A和域B,并想在域B上嵌入域A,以绕过同源策略?一个详细的例子将是伟大的!
但是,每次尝试验证时都会出现以下错误: 严重:执行身份验证时出现异常com.microsoft.sqlserver.jdbc.sqlserverexception:关键字“null”附近的语法不正确。在com.microsoft.sqlserver.jdbc.sqlserverexception.makefromdatabaseError(sqlserverexception.java:258)在