package br.com.dina.ui.widget;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import br.com.dina.ui.R;
import br.com.dina.ui.model.BasicItem;
import br.com.dina.ui.model.IListItem;
import br.com.dina.ui.model.ViewItem;
public class UITableView extends LinearLayout {
private int mIndexController = 0;
private LayoutInflater mInflater;
private LinearLayout mMainContainer;
private LinearLayout mListContainer;
private List<IListItem> mItemList;
private ClickListener mClickListener;
public UITableView(Context context, AttributeSet attrs) {
super(context, attrs);
mItemList = new ArrayList<IListItem>();
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mMainContainer = (LinearLayout) mInflater.inflate(R.layout.list_container, null);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
addView(mMainContainer, params);
mListContainer = (LinearLayout) mMainContainer.findViewById(R.id.buttonsContainer);
}
/**
*
* @param title
* @param summary
*/
public void addBasicItem(String title) {
mItemList.add(new BasicItem(title));
}
/**
*
* @param title
* @param summary
*/
public void addBasicItem(String title, String summary) {
mItemList.add(new BasicItem(title, summary));
}
/**
*
* @param title
* @param summary
* @param color
*/
public void addBasicItem(String title, String summary, int color) {
mItemList.add(new BasicItem(title, summary, color));
}
/**
*
* @param drawable
* @param title
* @param summary
*/
public void addBasicItem(int drawable, String title, String summary) {
mItemList.add(new BasicItem(drawable, title, summary));
}
/**
*
* @param drawable
* @param title
* @param summary
*/
public void addBasicItem(int drawable, String title, String summary, int color) {
mItemList.add(new BasicItem(drawable, title, summary, color));
}
/**
*
* @param item
*/
public void addBasicItem(BasicItem item) {
mItemList.add(item);
}
/**
*
* @param itemView
*/
public void addViewItem(ViewItem itemView) {
mItemList.add(itemView);
}
public void commit() {
mIndexController = 0;
if(mItemList.size() > 1) {
//when the list has more than one item
for(IListItem obj : mItemList) {
View tempItemView;
if(mIndexController == 0) {
tempItemView = mInflater.inflate(R.layout.list_item_top, null);
}
else if(mIndexController == mItemList.size()-1) {
tempItemView = mInflater.inflate(R.layout.list_item_bottom, null);
}
else {
tempItemView = mInflater.inflate(R.layout.list_item_middle, null);
}
setupItem(tempItemView, obj, mIndexController);
tempItemView.setClickable(obj.isClickable());
mListContainer.addView(tempItemView);
mIndexController++;
}
}
else if(mItemList.size() == 1) {
//when the list has only one item
View tempItemView = mInflater.inflate(R.layout.list_item_single, null);
IListItem obj = mItemList.get(0);
setupItem(tempItemView, obj, mIndexController);
tempItemView.setClickable(obj.isClickable());
mListContainer.addView(tempItemView);
}
}
private void setupItem(View view, IListItem item, int index) {
if(item instanceof BasicItem) {
BasicItem tempItem = (BasicItem) item;
setupBasicItem(view, tempItem, mIndexController);
}
else if(item instanceof ViewItem) {
ViewItem tempItem = (ViewItem) item;
setupViewItem(view, tempItem, mIndexController);
}
}
/**
*
* @param view
* @param item
* @param index
*/
private void setupBasicItem(View view, BasicItem item, int index) {
if(item.getDrawable() > -1) {
((ImageView) view.findViewById(R.id.image)).setBackgroundResource(item.getDrawable());
}
if(item.getSubtitle() != null) {
((TextView) view.findViewById(R.id.subtitle)).setText(item.getSubtitle());
}
else {
((TextView) view.findViewById(R.id.subtitle)).setVisibility(View.GONE);
}
((TextView) view.findViewById(R.id.title)).setText(item.getTitle());
if(item.getColor() > -1) {
((TextView) view.findViewById(R.id.title)).setTextColor(item.getColor());
}
view.setTag(index);
if(item.isClickable()) {
view.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mClickListener != null)
mClickListener.onClick((Integer) view.getTag());
}
});
}
else {
((ImageView) view.findViewById(R.id.chevron)).setVisibility(View.GONE);
}
}
/**
*
* @param view
* @param itemView
* @param index
*/
private void setupViewItem(View view, ViewItem itemView, int index) {
if(itemView.getView() != null) {
LinearLayout itemContainer = (LinearLayout) view.findViewById(R.id.itemContainer);
itemContainer.removeAllViews();
//itemContainer.removeAllViewsInLayout();
itemContainer.addView(itemView.getView());
if(itemView.isClickable()) {
itemContainer.setTag(index);
itemContainer.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mClickListener != null)
mClickListener.onClick((Integer) view.getTag());
}
});
}
}
}
public interface ClickListener {
void onClick(int index);
}
/**
*
* @return
*/
public int getCount() {
return mItemList.size();
}
/**
*
*/
public void clear() {
mItemList.clear();
mListContainer.removeAllViews();
}
/**
*
* @param listener
*/
public void setClickListener(ClickListener listener) {
this.mClickListener = listener;
}
/**
*
*/
public void removeClickListener() {
this.mClickListener = null;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android UITableView ios风格控件.zip
共69个文件
xml:27个
png:23个
java:14个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 172 浏览量
2022-07-03
19:52:20
上传
评论
收藏 62KB ZIP 举报
温馨提示
Android UITableView ios风格控件.zip
资源推荐
资源详情
资源评论
收起资源包目录
UITableView ios风格控件.zip (69个子文件)
UITableView ios风格控件
android-uitableview-master
android-uitableview-example
res
drawable-hdpi
user_image.png 696B
search_image.png 874B
icon.png 4KB
values
colors.xml 674B
strings.xml 129B
drawable-mdpi
user_image.png 237B
search_image.png 392B
icon.png 3KB
layout
example3.xml 584B
custom_view2.xml 991B
custom_view.xml 980B
single_button_example.xml 2KB
main.xml 584B
default.properties 413B
src
br
com
dina
ui
example
Example4Activity.java 1KB
Example3Activity.java 1KB
Example6Activity.java 2KB
Example5Activity.java 1KB
MainActivity.java 3KB
Example1Activity.java 2KB
Example7Activity.java 1KB
Example2Activity.java 2KB
project.properties 414B
AndroidManifest.xml 1KB
android-uitableview
res
drawable-ldpi
chevron_white.png 171B
chevron_default_down.png 247B
chevron_default.png 181B
chevron_white_down.png 279B
drawable-320dpi
chevron_white.png 215B
chevron_default_down.png 324B
chevron_default.png 223B
chevron_white_down.png 319B
drawable-hdpi
chevron_white.png 353B
chevron_default_down.png 416B
chevron_default.png 338B
chevron_white_down.png 415B
drawable
background_view_rounded_container.xml 511B
background_view_rounded_top.xml 1KB
background_view_rounded_single.xml 932B
chevron.xml 263B
background_view_rounded_bottom.xml 1KB
icon.png 3KB
background_view_rounded_middle.xml 836B
button_text_color.xml 229B
color
text_color_selector.xml 344B
values
colors.xml 664B
strings.xml 168B
attrs.xml 268B
styles.xml 4KB
drawable-mdpi
chevron_white.png 382B
chevron_default_down.png 370B
chevron_default.png 304B
chevron_white_down.png 436B
layout
list_item_bottom.xml 1KB
list_item_single.xml 1KB
uitableview_activity.xml 584B
list_item_middle.xml 1KB
list_item_top.xml 1KB
list_container.xml 660B
default.properties 383B
src
br
com
dina
ui
model
ViewItem.java 431B
BasicItem.java 2KB
IListItem.java 144B
activity
UITableViewActivity.java 642B
widget
UITableView.java 6KB
UIButton.java 2KB
project.properties 381B
AndroidManifest.xml 359B
.gitignore 85B
共 69 条
- 1
资源评论
reg183
- 粉丝: 1811
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功