Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
android-mvvm-architecture
提交
4a075d78
A
android-mvvm-architecture
项目概览
门心叼龙
/
android-mvvm-architecture
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
android-mvvm-architecture
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4a075d78
编写于
7月 12, 2017
作者:
A
amitshekhariitbhu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add onItemClick binding in Blog and OpenSource
上级
17f7da73
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
69 addition
and
10 deletion
+69
-10
app/src/main/java/com/mindorks/framework/mvvm/ui/feed/blogs/BlogAdapter.java
...om/mindorks/framework/mvvm/ui/feed/blogs/BlogAdapter.java
+22
-4
app/src/main/java/com/mindorks/framework/mvvm/ui/feed/blogs/BlogItemViewModel.java
...dorks/framework/mvvm/ui/feed/blogs/BlogItemViewModel.java
+11
-1
app/src/main/java/com/mindorks/framework/mvvm/ui/feed/opensource/OpenSourceAdapter.java
.../framework/mvvm/ui/feed/opensource/OpenSourceAdapter.java
+22
-4
app/src/main/java/com/mindorks/framework/mvvm/ui/feed/opensource/OpenSourceItemViewModel.java
...work/mvvm/ui/feed/opensource/OpenSourceItemViewModel.java
+12
-1
app/src/main/res/layout/item_blog_view.xml
app/src/main/res/layout/item_blog_view.xml
+1
-0
app/src/main/res/layout/item_open_source_view.xml
app/src/main/res/layout/item_open_source_view.xml
+1
-0
未找到文件。
app/src/main/java/com/mindorks/framework/mvvm/ui/feed/blogs/BlogAdapter.java
浏览文件 @
4a075d78
...
...
@@ -16,6 +16,8 @@
package
com.mindorks.framework.mvvm.ui.feed.blogs
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.ViewGroup
;
...
...
@@ -24,6 +26,7 @@ import com.mindorks.framework.mvvm.data.model.api.BlogResponse;
import
com.mindorks.framework.mvvm.databinding.ItemBlogEmptyViewBinding
;
import
com.mindorks.framework.mvvm.databinding.ItemBlogViewBinding
;
import
com.mindorks.framework.mvvm.ui.base.BaseViewHolder
;
import
com.mindorks.framework.mvvm.utils.AppLogger
;
import
java.util.List
;
...
...
@@ -55,7 +58,7 @@ public class BlogAdapter extends RecyclerView.Adapter<BaseViewHolder> {
case
VIEW_TYPE_NORMAL:
ItemBlogViewBinding
blogViewBinding
=
ItemBlogViewBinding
.
inflate
(
LayoutInflater
.
from
(
parent
.
getContext
()),
parent
,
false
);
return
new
ViewHolder
(
blogViewBinding
);
return
new
Blog
ViewHolder
(
blogViewBinding
);
case
VIEW_TYPE_EMPTY:
default
:
ItemBlogEmptyViewBinding
emptyViewBinding
=
ItemBlogEmptyViewBinding
.
inflate
(
LayoutInflater
.
from
(
parent
.
getContext
()),
...
...
@@ -87,13 +90,13 @@ public class BlogAdapter extends RecyclerView.Adapter<BaseViewHolder> {
notifyDataSetChanged
();
}
public
class
ViewHolder
extends
BaseViewHold
er
{
public
class
BlogViewHolder
extends
BaseViewHolder
implements
BlogItemViewModel
.
BlogItemViewModelListen
er
{
private
ItemBlogViewBinding
mBinding
;
private
BlogItemViewModel
mBlogItemViewModel
;
public
ViewHolder
(
ItemBlogViewBinding
binding
)
{
public
Blog
ViewHolder
(
ItemBlogViewBinding
binding
)
{
super
(
binding
.
getRoot
());
this
.
mBinding
=
binding
;
}
...
...
@@ -103,7 +106,7 @@ public class BlogAdapter extends RecyclerView.Adapter<BaseViewHolder> {
final
BlogResponse
.
Blog
blog
=
mBlogResponseList
.
get
(
position
);
mBlogItemViewModel
=
new
BlogItemViewModel
(
blog
);
mBlogItemViewModel
=
new
BlogItemViewModel
(
blog
,
this
);
mBinding
.
setViewModel
(
mBlogItemViewModel
);
...
...
@@ -114,6 +117,21 @@ public class BlogAdapter extends RecyclerView.Adapter<BaseViewHolder> {
mBinding
.
executePendingBindings
();
}
@Override
public
void
onItemClick
(
String
blogUrl
)
{
if
(
blogUrl
!=
null
)
{
try
{
Intent
intent
=
new
Intent
();
intent
.
setAction
(
Intent
.
ACTION_VIEW
);
intent
.
addCategory
(
Intent
.
CATEGORY_BROWSABLE
);
intent
.
setData
(
Uri
.
parse
(
blogUrl
));
itemView
.
getContext
().
startActivity
(
intent
);
}
catch
(
Exception
e
)
{
AppLogger
.
d
(
"url error"
);
}
}
}
}
public
class
EmptyViewHolder
extends
BaseViewHolder
{
...
...
app/src/main/java/com/mindorks/framework/mvvm/ui/feed/blogs/BlogItemViewModel.java
浏览文件 @
4a075d78
...
...
@@ -33,8 +33,11 @@ public class BlogItemViewModel {
public
ObservableField
<
String
>
date
;
public
ObservableField
<
String
>
content
;
public
BlogItemViewModel
(
BlogResponse
.
Blog
blog
)
{
public
BlogItemViewModelListener
mListener
;
public
BlogItemViewModel
(
BlogResponse
.
Blog
blog
,
BlogItemViewModelListener
listener
)
{
this
.
mBlog
=
blog
;
this
.
mListener
=
listener
;
imageUrl
=
new
ObservableField
<>(
mBlog
.
getCoverImgUrl
());
title
=
new
ObservableField
<>(
mBlog
.
getTitle
());
author
=
new
ObservableField
<>(
mBlog
.
getAuthor
());
...
...
@@ -42,4 +45,11 @@ public class BlogItemViewModel {
content
=
new
ObservableField
<>(
mBlog
.
getDescription
());
}
public
void
onItemClick
()
{
mListener
.
onItemClick
(
mBlog
.
getBlogUrl
());
}
public
interface
BlogItemViewModelListener
{
void
onItemClick
(
String
blogUrl
);
}
}
app/src/main/java/com/mindorks/framework/mvvm/ui/feed/opensource/OpenSourceAdapter.java
浏览文件 @
4a075d78
...
...
@@ -16,6 +16,8 @@
package
com.mindorks.framework.mvvm.ui.feed.opensource
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.ViewGroup
;
...
...
@@ -24,6 +26,7 @@ import com.mindorks.framework.mvvm.data.model.api.OpenSourceResponse;
import
com.mindorks.framework.mvvm.databinding.ItemOpenSourceEmptyViewBinding
;
import
com.mindorks.framework.mvvm.databinding.ItemOpenSourceViewBinding
;
import
com.mindorks.framework.mvvm.ui.base.BaseViewHolder
;
import
com.mindorks.framework.mvvm.utils.AppLogger
;
import
java.util.List
;
...
...
@@ -55,7 +58,7 @@ public class OpenSourceAdapter extends RecyclerView.Adapter<BaseViewHolder> {
case
VIEW_TYPE_NORMAL:
ItemOpenSourceViewBinding
openSourceViewBinding
=
ItemOpenSourceViewBinding
.
inflate
(
LayoutInflater
.
from
(
parent
.
getContext
()),
parent
,
false
);
return
new
ViewHolder
(
openSourceViewBinding
);
return
new
OpenSource
ViewHolder
(
openSourceViewBinding
);
case
VIEW_TYPE_EMPTY:
default
:
ItemOpenSourceEmptyViewBinding
emptyViewBinding
=
ItemOpenSourceEmptyViewBinding
...
...
@@ -87,13 +90,13 @@ public class OpenSourceAdapter extends RecyclerView.Adapter<BaseViewHolder> {
notifyDataSetChanged
();
}
public
class
ViewHolder
extends
BaseViewHold
er
{
public
class
OpenSourceViewHolder
extends
BaseViewHolder
implements
OpenSourceItemViewModel
.
OpenSourceItemViewModelListen
er
{
private
ItemOpenSourceViewBinding
mBinding
;
private
OpenSourceItemViewModel
mOpenSourceItemViewModel
;
public
ViewHolder
(
ItemOpenSourceViewBinding
binding
)
{
public
OpenSource
ViewHolder
(
ItemOpenSourceViewBinding
binding
)
{
super
(
binding
.
getRoot
());
this
.
mBinding
=
binding
;
}
...
...
@@ -102,7 +105,7 @@ public class OpenSourceAdapter extends RecyclerView.Adapter<BaseViewHolder> {
public
void
onBind
(
int
position
)
{
final
OpenSourceResponse
.
Repo
repo
=
mOpenSourceResponseList
.
get
(
position
);
mOpenSourceItemViewModel
=
new
OpenSourceItemViewModel
(
repo
);
mOpenSourceItemViewModel
=
new
OpenSourceItemViewModel
(
repo
,
this
);
mBinding
.
setViewModel
(
mOpenSourceItemViewModel
);
...
...
@@ -112,6 +115,21 @@ public class OpenSourceAdapter extends RecyclerView.Adapter<BaseViewHolder> {
// To force execution, use the executePendingBindings() method.
mBinding
.
executePendingBindings
();
}
@Override
public
void
onItemClick
(
String
projectUrl
)
{
if
(
projectUrl
!=
null
)
{
try
{
Intent
intent
=
new
Intent
();
intent
.
setAction
(
Intent
.
ACTION_VIEW
);
intent
.
addCategory
(
Intent
.
CATEGORY_BROWSABLE
);
intent
.
setData
(
Uri
.
parse
(
projectUrl
));
itemView
.
getContext
().
startActivity
(
intent
);
}
catch
(
Exception
e
)
{
AppLogger
.
d
(
"url error"
);
}
}
}
}
public
class
EmptyViewHolder
extends
BaseViewHolder
{
...
...
app/src/main/java/com/mindorks/framework/mvvm/ui/feed/opensource/OpenSourceItemViewModel.java
浏览文件 @
4a075d78
...
...
@@ -31,11 +31,22 @@ public class OpenSourceItemViewModel {
public
ObservableField
<
String
>
title
;
public
ObservableField
<
String
>
content
;
public
OpenSourceItemViewModel
(
OpenSourceResponse
.
Repo
repo
)
{
public
OpenSourceItemViewModelListener
mListener
;
public
OpenSourceItemViewModel
(
OpenSourceResponse
.
Repo
repo
,
OpenSourceItemViewModelListener
listener
)
{
this
.
mRepo
=
repo
;
this
.
mListener
=
listener
;
imageUrl
=
new
ObservableField
<>(
repo
.
getCoverImgUrl
());
title
=
new
ObservableField
<>(
mRepo
.
getTitle
());
content
=
new
ObservableField
<>(
mRepo
.
getDescription
());
}
public
void
onItemClick
()
{
mListener
.
onItemClick
(
mRepo
.
getProjectUrl
());
}
public
interface
OpenSourceItemViewModelListener
{
void
onItemClick
(
String
projectUrl
);
}
}
app/src/main/res/layout/item_blog_view.xml
浏览文件 @
4a075d78
...
...
@@ -35,6 +35,7 @@
android:layout_height=
"wrap_content"
android:layout_margin=
"8dp"
android:background=
"@color/white"
android:onClick=
"@{() -> viewModel.onItemClick()}"
android:orientation=
"vertical"
app:cardCornerRadius=
"7dp"
app:cardElevation=
"4dp"
>
...
...
app/src/main/res/layout/item_open_source_view.xml
浏览文件 @
4a075d78
...
...
@@ -35,6 +35,7 @@
android:layout_height=
"wrap_content"
android:layout_margin=
"8dp"
android:background=
"@color/white"
android:onClick=
"@{() -> viewModel.onItemClick()}"
android:orientation=
"vertical"
app:cardCornerRadius=
"7dp"
app:cardElevation=
"4dp"
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录