Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yuan_ht
BlackHaoUtil
提交
fbba6c45
B
BlackHaoUtil
项目概览
yuan_ht
/
BlackHaoUtil
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
BlackHaoUtil
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
fbba6c45
编写于
9月 07, 2018
作者:
Black_Hao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add CommonBaseAdapter
Add CommonBaseAdapter
上级
d220009f
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
212 addition
and
3 deletion
+212
-3
app/src/main/java/com/balckhao/blackhaoutil/base/CommonBaseAdapter.java
...ava/com/balckhao/blackhaoutil/base/CommonBaseAdapter.java
+116
-0
app/src/main/java/com/balckhao/blackhaoutil/base/TestActivity.java
...ain/java/com/balckhao/blackhaoutil/base/TestActivity.java
+1
-0
app/src/main/java/com/balckhao/blackhaoutil/base/TestAdapter.java
...main/java/com/balckhao/blackhaoutil/base/TestAdapter.java
+45
-0
app/src/main/java/com/balckhao/blackhaoutil/base/TestFragment.java
...ain/java/com/balckhao/blackhaoutil/base/TestFragment.java
+17
-0
app/src/main/res/layout/activity_base_test.xml
app/src/main/res/layout/activity_base_test.xml
+2
-2
app/src/main/res/layout/adapter_test.xml
app/src/main/res/layout/adapter_test.xml
+23
-0
app/src/main/res/layout/fragment_one.xml
app/src/main/res/layout/fragment_one.xml
+8
-1
未找到文件。
app/src/main/java/com/balckhao/blackhaoutil/base/CommonBaseAdapter.java
0 → 100644
浏览文件 @
fbba6c45
package
com.balckhao.blackhaoutil.base
;
import
android.annotation.IdRes
;
import
android.content.Context
;
import
android.util.SparseArray
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.BaseAdapter
;
import
java.util.List
;
/**
* Author : BlackHao
* Time : 2018/9/4 14:11
* Description : ListView/GridView BaseAdapter
*/
public
abstract
class
CommonBaseAdapter
<
T
>
extends
BaseAdapter
{
private
List
<
T
>
list
;
private
Context
context
;
public
CommonBaseAdapter
(
List
<
T
>
list
,
Context
context
)
{
this
.
list
=
list
;
this
.
context
=
context
;
}
@Override
public
int
getCount
()
{
return
list
==
null
?
0
:
list
.
size
();
}
@Override
public
Object
getItem
(
int
position
)
{
return
list
.
get
(
position
);
}
@Override
public
long
getItemId
(
int
position
)
{
return
position
;
}
@SuppressWarnings
(
"unchecked"
)
@Override
public
View
getView
(
int
position
,
View
convertView
,
ViewGroup
parent
)
{
ViewHolder
viewHolder
;
if
(
convertView
==
null
)
{
convertView
=
View
.
inflate
(
context
,
getLayoutResId
(),
null
);
viewHolder
=
new
ViewHolder
();
//将控件与 ViewHolder 绑定
int
[]
viewIdArray
=
bindView
();
for
(
int
aViewIdArray
:
viewIdArray
)
{
viewHolder
.
bindViewById
(
convertView
,
aViewIdArray
);
}
convertView
.
setTag
(
viewHolder
);
}
else
{
viewHolder
=
(
ViewHolder
)
convertView
.
getTag
();
}
initData
(
viewHolder
,
list
.
get
(
position
),
position
);
return
convertView
;
}
/**
* 获取 layout 文件
*
* @return layout 文件 ID
*/
protected
abstract
int
getLayoutResId
();
/**
* 将控件与 ViewHolder 绑定
*
* @return 需要绑定的控件 ID 数组
*/
protected
abstract
int
[]
bindView
();
/**
* 绑定显示数据,增加回调监听等操作
*
* @param holder ViewHolder
* @param position 对应的位置
* @param t list.get(position)数据
*/
protected
abstract
void
initData
(
ViewHolder
holder
,
T
t
,
int
position
);
public
class
ViewHolder
{
private
SparseArray
<
View
>
viewSparseArray
;
ViewHolder
()
{
this
.
viewSparseArray
=
new
SparseArray
<>();
}
/**
* 通过 id获取 View
*
* @param id View ID
* @param <E> View 类型
* @return 对应的 View
*/
@SuppressWarnings
(
"unchecked"
)
public
<
E
extends
View
>
E
getViewById
(
@IdRes
int
id
)
{
return
(
E
)
viewSparseArray
.
get
(
id
);
}
/**
* 通过 id 获取 View并绑定到 ViewHolder
*
* @param view 布局文件 View
* @param id View ID
*/
public
void
bindViewById
(
View
view
,
@IdRes
int
id
)
{
viewSparseArray
.
put
(
id
,
view
.
findViewById
(
id
));
}
}
}
app/src/main/java/com/balckhao/blackhaoutil/base/TestActivity.java
浏览文件 @
fbba6c45
...
...
@@ -27,6 +27,7 @@ public class TestActivity extends BaseActivity {
protected
void
initUI
()
{
setContentView
(
R
.
layout
.
activity_base_test
);
ButterKnife
.
bind
(
this
);
//replaceFragment
replaceFragment
(
R
.
id
.
frame_1
,
new
TestFragment
());
replaceFragment
(
R
.
id
.
frame_2
,
new
TestFragment
());
}
...
...
app/src/main/java/com/balckhao/blackhaoutil/base/TestAdapter.java
0 → 100644
浏览文件 @
fbba6c45
package
com.balckhao.blackhaoutil.base
;
import
android.content.Context
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
com.balckhao.blackhaoutil.R
;
import
java.util.List
;
/**
* Author : BlackHao
* Time : 2018/9/4 14:58
* Description :
*/
public
class
TestAdapter
extends
CommonBaseAdapter
<
String
>
{
public
TestAdapter
(
List
<
String
>
list
,
Context
context
)
{
super
(
list
,
context
);
}
@Override
protected
int
getLayoutResId
()
{
return
R
.
layout
.
adapter_test
;
}
@Override
protected
int
[]
bindView
()
{
return
new
int
[]{
R
.
id
.
test_iv
,
R
.
id
.
test_tv
};
}
@Override
protected
void
initData
(
ViewHolder
holder
,
String
s
,
int
position
)
{
TextView
tv
=
holder
.
getViewById
(
R
.
id
.
test_tv
);
ImageView
iv
=
holder
.
getViewById
(
R
.
id
.
test_iv
);
tv
.
setText
(
"Position:"
+
position
+
" Content : "
+
s
);
if
(
s
.
endsWith
(
"pdf"
))
{
iv
.
setBackgroundResource
(
R
.
drawable
.
pdf
);
}
else
if
(
s
.
endsWith
(
"ppt"
)){
iv
.
setBackgroundResource
(
R
.
drawable
.
ppt
);
}
else
{
iv
.
setBackgroundResource
(
R
.
drawable
.
unkown_file
);
}
}
}
app/src/main/java/com/balckhao/blackhaoutil/base/TestFragment.java
浏览文件 @
fbba6c45
...
...
@@ -2,9 +2,12 @@ package com.balckhao.blackhaoutil.base;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.ListView
;
import
com.balckhao.blackhaoutil.R
;
import
java.util.ArrayList
;
import
butterknife.Bind
;
import
butterknife.ButterKnife
;
...
...
@@ -18,6 +21,8 @@ public class TestFragment extends BaseFragment {
@Bind
(
R
.
id
.
iv_1
)
ImageView
iv1
;
@Bind
(
R
.
id
.
lv_test
)
ListView
lvTest
;
@Override
protected
int
initLayoutRes
()
{
...
...
@@ -32,6 +37,17 @@ public class TestFragment extends BaseFragment {
@Override
protected
void
initData
()
{
ArrayList
<
String
>
arrayList
=
new
ArrayList
<>();
arrayList
.
add
(
"Hello World, Android.ppt"
);
arrayList
.
add
(
"Hello World, Java.pdf"
);
arrayList
.
add
(
"Hello World, JS.pdf"
);
arrayList
.
add
(
"Hello World, C.ppt"
);
arrayList
.
add
(
"Hello World, C++"
);
arrayList
.
add
(
"Hello World, C#.pdf"
);
arrayList
.
add
(
"Hello World, Python.ppt"
);
arrayList
.
add
(
"Hello World, PHP"
);
TestAdapter
testAdapter
=
new
TestAdapter
(
arrayList
,
getContext
());
lvTest
.
setAdapter
(
testAdapter
);
}
@Override
...
...
@@ -44,4 +60,5 @@ public class TestFragment extends BaseFragment {
super
.
onDestroyView
();
ButterKnife
.
unbind
(
this
);
}
}
app/src/main/res/layout/activity_base_test.xml
浏览文件 @
fbba6c45
...
...
@@ -14,7 +14,7 @@
<FrameLayout
android:id=
"@+id/frame_1"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_height=
"50
0
dp"
android:layout_marginTop=
"10dp"
/>
<!--分割线-->
...
...
@@ -26,7 +26,7 @@
<FrameLayout
android:id=
"@+id/frame_2"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_height=
"50
0
dp"
android:layout_marginTop=
"10dp"
/>
...
...
app/src/main/res/layout/adapter_test.xml
0 → 100644
浏览文件 @
fbba6c45
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<ImageView
android:id=
"@+id/test_iv"
android:layout_width=
"30dp"
android:layout_height=
"30dp"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"20dp"
android:layout_marginStart=
"20dp"
android:contentDescription=
"@null"
/>
<TextView
android:id=
"@+id/test_tv"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"70dp"
android:layout_marginStart=
"70dp"
android:gravity=
"center"
/>
</RelativeLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_one.xml
浏览文件 @
fbba6c45
...
...
@@ -7,7 +7,14 @@
android:id=
"@+id/iv_1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_center
InParent
=
"true"
android:layout_center
Horizontal
=
"true"
android:contentDescription=
"@null"
/>
<ListView
android:id=
"@+id/lv_test"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_below=
"@id/iv_1"
android:layout_marginTop=
"10dp"
/>
</RelativeLayout>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录