8000 +):1.加入RecyclerView集合AA(Android Annotations)注入框架实例功能代码 · lhwCoding/FastDev4Android@b43420c · GitHub
[go: up one dir, main page]

Skip to content

Commit b43420c

Browse files
committed
+):1.加入RecyclerView集合AA(Android Annotations)注入框架实例功能代码
1 parent 2c6f9fd commit b43420c

13 files changed

+348
-2
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
<activity android:name="com.chinaztt.fda.test.RecyclerViewTestActivity"/>
3838
<activity android:name="com.chinaztt.fda.test.RecyclerDemoActivity_"/>
3939
<activity android:name="com.chinaztt.fda.test.RecyclerGalleryActivity"/>
40+
<activity android:name="com.chinaztt.fda.test.RecyclerViewAAActivity_"/>
4041
</application>
4142
<!--添加权限-->
4243

app/src/main/java/com/chinaztt/fda/test/RecyclerDemoActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ public void clickButton(View view){
5050
openActivity(RecyclerGalleryActivity.class);
5151
break;
5252
case R.id.btn_three:
53-
Toast.makeText(this,"下一讲实现",Toast.LENGTH_SHORT).show();
53+
Intent mIntent=new Intent(this,RecyclerViewAAActivity_.class);
54+
this.startActivity(mIntent);
5455
break;
5556
}
5657
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.chinaztt.fda.test.RecyclerViewAA;
2+
3+
import android.content.Context;
4+
import android.view.ViewGroup;
5+
import org.androidannotations.annotations.EBean;
6+
import org.androidannotations.annotations.RootContext;
7+
8+
/**
9+
* 当前类注释:
10+
* 项目名:FastDev4Android
11+
* 包名:com.chinaztt.fda.test.RecyclerViewAA
12+
* 作者:江清清 on 15/11/21 09:35
13+
* 邮箱:jiangqqlmj@163.com
14+
* QQ: 781931404
15+
* 公司:江苏中天科技软件技术有限公司
16+
*/
17+
@EBean
18+
public class AAUserAdapter extends RecyclerViewAdapterBase<TestUserBean,AAUserItemView> {
19+
@RootContext
20+
Context context;
21+
/**
22+
* 创建Item视图View
23+
* @param parent
24+
* @param viewType
25+
* @return
26+
*/
27+
@Override
28+
protected AAUserItemView onCreateItemView(ViewGroup parent, int viewType) {
29+
return AAUserItemView_.build(context);
30+
}
31+
/**
32+
* 进行绑定数据View
33+
* @param holder
34+
* @param position
35+
*/
36+
@Override
37+
public void onBindViewHolder(ViewWrapper<AAUserItemView> holder, int position) {
38+
AAUserItemView view =holder.getView();
39+
TestUserBean userBean = items.get(position);
40+
view.bind(userBean);
41+
}
42+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.chinaztt.fda.test.RecyclerViewAA;
2+
3+
import java.util.List;
4+
5+
/**
6+
* 当前类注释:
7+
* 项目名:FastDev4Android
8+
* 包名:com.chinaztt.fda.test.RecyclerViewAA
9+
* 作者:江清清 on 15/11/21 09:36
10+
* 邮箱:jiangqqlmj@163.com
11+
* QQ: 781931404
12+
* 公司:江苏中天科技软件技术有限公司
13+
*/
14+
public interface AAUserFinder {
15+
List<TestUserBean> findAll();
16+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.chinaztt.fda.test.RecyclerViewAA;
2+
3+
import android.content.Context;
4+
import android.widget.LinearLayout;
5+
import android.widget.TextView;
6+
7+
import com.chinaztt.fda.ui.R;
8+
9+
import org.androidannotations.annotations.EViewGroup;
10+
import org.androidannotations.annotations.ViewById;
11+
12+
/**
13+
* 当前类注释:
14+
* 项目名:FastDev4Android
15+
* 包名:com.chinaztt.fda.test.RecyclerViewAA
16+
* 作者:江清清 on 15/11/21 09:36
17+
* 邮箱:jiangqqlmj@163.com
18+
* QQ: 781931404
19+
* 公司:江苏中天科技软件技术有限公司
20+
*/
21+
@EViewGroup(R.layout.item_user_item)
22+
public class AAUserItemView extends LinearLayout {
23+
@ViewById
24+
TextView tv_first;
25+
@ViewById
26+
TextView tv_last;
27+
public AAUserItemView(Context context) {
28+
super(context);
29+
}
30+
public void bind(TestUserBean userBean) {
31+
tv_first.setText(userBean.getFirstName());
32+
tv_last.setText(userBean.getLastName());
33+
}
34+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.chinaztt.fda.test.RecyclerViewAA;
2+
3+
import org.androidannotations.annotations.EBean;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
/**
9+
* 当前类注释:
10+
* 项目名:FastDev4Android
11+
* 包名:com.chinaztt.fda.test.RecyclerViewAA
12+
* 作者:江清清 on 15/11/21 09:36
13+
* 邮箱:jiangqqlmj@163.com
14+
* QQ: 781931404
15+
* 公司:江苏中天科技软件技术有限公司
16+
*/
17+
@EBean
18+
public class ImMemoryUserFinder implements AAUserFinder{
19+
@Override
20+
public List<TestUserBean> findAll() {
21+
List<TestUserBean> userModels=new ArrayList<TestUserBean>();
22+
for(int i=1;i<=45;i++){
23+
TestUserBean model=new TestUserBean();
24+
model.setFirstName("First 张三:"+i);
25+
model.setLastName("Last 李四:" + i);
26+
userModels.add(model);
27+
}
28+
return userModels;
29+
}
30+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.chinaztt.fda.test.RecyclerViewAA;
2+
3+
/**
4+
* 当前类注释:
5+
* 项目名:FastDev4Android
6+
* 包名:com.chinaztt.fda.test.RecyclerViewAA
7+
* 作者:江清清 on 15/11/21 09:31
8+
* 邮箱:jiangqqlmj@163.com
9+
* QQ: 781931404
10+
* 公司:江苏中天科技软件技术有限公司
11+
*/
12+
13+
import android.support.v7.widget.RecyclerView;
14+
import android.view.View;
15+
import android.view.ViewGroup;
16+
17+
import java.util.ArrayList;
18+
import java.util.List;
19+
20+
public abstract class RecyclerViewAdapterBase<T,V extends View>extends RecyclerView.Adapter<ViewWrapper<V>>{
21+
22+
/**
23+
* 存储需要绑定的数据
24+
*/
25+
protected List<T> items = new ArrayList<T>();
26+
public List<T> getItems() {
27+
return items;
28+
}
29+
public void setItems(List<T> items) {
30+
this.items = items;
31+
}
32+
33+
@Override
34+
public int getItemCount() {
35+
return items.size();
36+
}
37+
38+
F438 /**
39+
* 进行创建视图承载类
40+
* @param parent
41+
* @param viewType
42+
* @return
43+
*/
44+
@Override
45+
public final ViewWrapper<V> onCreateViewHolder(ViewGroup parent, int viewType) {
46+
return new ViewWrapper<V>(onCreateItemView(parent, viewType));
47+
}
48+
/**
49+
* 创建视图Item,交给具体实现类完成
50+
* @param parent
51+
* @param viewType
52+
* @return
53+
*/
54+
protected abstract V onCreateItemView(ViewGroup parent, int viewType);
55+
56+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.chinaztt.fda.test.RecyclerViewAA;
2+
3+
/**
4+
* 当前类注释:测试的AA的用户实体类
5+
* 项目名:FastDev4Android
6+
* 包名:com.chinaztt.fda.test.RecyclerViewAA
7+
* 作者:江清清 on 15/11/21 09:29
8+
* 邮箱:jiangqqlmj@163.com
9+
* QQ: 781931404
10+
* 公司:江苏中天科技软件技术有限公司
11+
*/
12+
public class TestUserBean {
13+
private String firstName;
14+
private String LastName;
15+
16+
public TestUserBean() {
17+
}
18+
19+
public String getFirstName() {
20+
return firstName;
21+
}
22+
23+
public void setFirstName(String firstName) {
24+
this.firstName = firstName;
25+
}
26+
27+
public String getLastName() {
28+
return LastName;
29+
}
30+
31+
public void setLastName(String lastName) {
32+
LastName = lastName;
33+
}
34+
35+
@Override
36+
public String toString() {
37+
return "UserModel{" +
38+
"firstName='" + firstName + '\'' +
39+
", LastName='" + LastName + '\'' +
40+
'}';
41+
}
42+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.chinaztt.fda.test.RecyclerViewAA;
2+
3+
import android.support.v7.widget.RecyclerView;
4+
import android.view.View;
5+
6+
import org.androidannotations.annotations.EViewGroup;
7+
8+
/**
9+
* 当前类注释:创建一个泛型类来把所有类型的View包装成ViewHonlder
10+
* 项目名:FastDev4Android
11+
* 包名:com.chinaztt.fda.test.RecyclerViewAA
12+
* 作者:江清清 on 15/11/21 09:24
13+
* 邮箱:jiangqqlmj@163.com
14+
* QQ: 781931404
15+
* 公司:江苏中天科技软件技术有限公司
16+
*/
17+
public class ViewWrapper<V extends View> extends RecyclerView.ViewHolder {
18+
public V view;
19+
public ViewWrapper(V itemView) {
20+
super(itemView);
21+
view = itemView;
22+
}
23+
public V getView() {
24+
return view;
25+
}
26+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.chinaztt.fda.test;
2+
3+
import android.os.Bundle;
4+
import android.support.v7.widget.LinearLayoutManager;
5+
import android.support.v7.widget.OrientationHelper;
6+
import android.support.v7.widget.RecyclerView;
7+
import android.view.View;
8+
import android.widget.LinearLayout;
9+
import android.widget.TextView;
10+
11+
import com.chinaztt.fda.test.RecyclerViewAA.AAUserAdapter;
12+
import com.chinaztt.fda.test.RecyclerViewAA.AAUserFinder;
13+
import com.chinaztt.fda.test.RecyclerViewAA.ImMemoryUserFinder;
14+
import com.chinaztt.fda.ui.R;
15+
import com.chinaztt.fda.ui.base.BaseActivity;
16+
17+
import org.androidannotations.annotations.AfterInject;
18+
import org.androidannotations.annotations.AfterViews;
19+
import org.androidannotations.annotations.Bean;
20+
import org.androidannotations.annotations.Click;
21+
import org.androidannotations.annotations.EActivity;
22+
import org.androidannotations.annotations.ViewById;
23+
24+
/**
25+
* 当前类注释:RecyclerView集合AA(Android Annotations)注入框架实现实例
26+
* 项目名:FastDev4Android
27+
* 包名:com.chinaztt.fda.test
28+
* 作者:江清清 on 15/11/20 14:41
29+
* 邮箱:jiangqqlmj@163.com
30+
* QQ: 781931404
31+
* 公司:江苏中天科技软件技术有限公司
32+
*/
33+
@EActivity(R.layout.recycler_aa_layout)
34+
public class RecyclerViewAAActivity extends BaseActivity{
35+
@ViewById
36+
LinearLayout top_bar_linear_back;
37+
@ViewById
38+
TextView top_bar_title;
39+
@ViewById
40+
RecyclerView aa_recyclerview;
41+
@Bean
42+
AAUserAdapter adapter;
43+
@Bean(ImMemoryUserFinder.class)
44+
AAUserFinder userFinder;
45+
@Override
46+
protected void onCreate(Bundle savedInstanceState) {
47+
super.onCreate(savedInstanceState);
48+
}
49+
@AfterViews
50+
public void initViews(){
51+
top_bar_title.setText("RecyclerView集合AA注入框架实例");
52+
//进行设置RecyerView ,并且绑定数据
53+
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
54+
linearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
55+
aa_recyclerview.setLayoutManager(linearLayoutManager);
56+
adapter.setItems(userFinder.findAll());
57+
aa_recyclerview.setAdapter(adapter);
58+
}
59+
@Click(R.id.top_bar_linear_back)
60+
public void clickButton(View view){
61+
this.finish();
62+
}
63+
64+
}

0 commit comments

Comments
 (0)
0