新浪围脖android客户端中显示围脖信息条目的ListView有这几样功能:
1、点击ListView中没有展开的条目时,会展开该条目,显示更多的详细信息,并关闭其他展开的条目。
2、点击ListView中展开的条目时,会弹出对话框,提供更多的功能选项。
因为毕设要实现类似的功能,所以就揣摩了一下,下面给出简单的示例:
假设先显示图书标题列表,点击标题后会显示图书的作者和出版社。
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
>
<TextView android:id="@+id/list_item_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30dip"
/>
<TextView android:id="@+id/list_item_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
/>
<TextView android:id="@+id/list_item_3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
/>
</LinearLayout>
以上layout用来为SimpleAdapter提供布局文件,三个TextView分别对应图书的标题,作者和出版社。因为作者和出版社刚开始时隐藏的,所以将它们的visibility属性设置成gone值,这里需要说明下,visibility有三个属性值,visible,invisible和gone.visible指该组件可视,invisible和gone指该组件不可视,两者的区别在于,invisible让该组件的内容不可视,但是组件的大小依然会将空间占用,而gone是彻底从布局空间上隐藏。
下面是具体的实现类:
public class BookListActivity extends Activity {
private ListView mBooksListView;
private List<HashMap<String,String>> mItems;
private SimpleAdapter mAdapter;
private Book mBook;
/*
* 保存ListView中最近一次被点击的Item的信息
*/
//ListView的第一个Item的position值为0,故必须初始化mLastPosition,使其永不冲突
private int mLastPosition = -1;
private View mLastView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_1);
//获取ListView
mBooksListView = (ListView)findViewById(R.id.list1);
mItems = new ArrayList<HashMap<String,String>>();
List<Book> mBooks = .....//获取想要显示的beans
for(Book b : mBooks) {
HashMap<String,String> item = new HashMap<String,String>();
item.put(Constant.ATTR_BOOK_TITLE,b.getTitle());
item.put(Constant.ATTR_BOOK_AUTHOR, b.getAuthor());
item.put(Constant.ATTR_BOOK_PUBLISHER, b.getPublisher());
mItems.add(item);
}
mAdapter = new SimpleAdapter(this,mItems,R.layout.list_items_1,
new String[]{Constant.ATTR_BOOK_TITLE,
Constant.ATTR_BOOK_AUTHOR,
Constant.ATTR_BOOK_PUBLISHER},
new int[]{R.id.list_item_1,
R.id.list_item_2,
R.id.list_item_3});
mBooksListView.setAdapter(mAdapter);
mBooksListView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if(position != mLastPosition) {
//如果点击的条目和上一次的不同,那么就展开本条目,关闭上次展开的条目
setVisible(view);
setGone(mLastView);
mLastPosition = position;
mLastView = view;
} else {
//如果点击的条目和上一次的相同,那么就弹出对话框,提供更多功能选项
showDialog(......);
}
}
});
}
/*
* 让view可视
*/
private void setVisible(View view) {
if(view == null)return;
LinearLayout layout = (LinearLayout)view;
layout.findViewById(R.id.list_item_2).setVisibility(View.VISIBLE);
layout.findViewById(R.id.list_item_3).setVisibility(View.VISIBLE);
}
/*
* 让view不可视
*/
private void setGone(View view) {
if(view == null)return;
LinearLayout layout = (LinearLayout)view;
layout.findViewById(R.id.list_item_2).setVisibility(View.GONE);
layout.findViewById(R.id.list_item_3).setVisibility(View.GONE);
}
}
分享到:
相关推荐
仿照新浪微博Android客户端个人中心的ScrollView.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
基于Android的新浪微博系统开发01-开发概述 基于Android的新浪微博系统开发02-下载微博sdk ...基于Android的新浪微博系统开发07-不断扩展的ListView 基于Android的新浪微博系统开发08-动态获取Icon和局部TextVieww
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
仿新浪微博Android客户端主界面的源码。
从这个星期开始,准备拿新浪微博开放平台做个实践,开发一个功能简单的android客户端,会尽可能的完善功能。 上图是这个客户端的主要界面。今天增加的功能。 1.简单的样式和皮肤,只是添加了按钮。 运行的系统是...
android listview 下拉刷新 上拉翻页 仿新浪微博客户端 完美的demo
仿新浪微博Android客户端主界面的源码。
这个微博客户端中用到得一些知识点。 1:sqllite数据库的应用 2:SharedPreferences结合sqllite保存默认登录用户 3:圆角背景,圆角头像,.9.png格式在android中的应用 4:布局方面的当然是最常用的ReleativeLayout,...
因为小巫近期要开发新浪微博客户端,需要实现ListView的下拉刷新,所以就想把这个UI整合到项目当中去,这里只是一个demo,可以根据项目的需要进行修改。 就不要太在乎界面了哈: 知道你们想要源码了,去下吧...
自己根据新浪微博SDK,简单的实现了授权,保存信息到数据库,读取微博内容到listview,发表微博等功能。代码写的不是缜密,所以老手勿怒。
android开发之【腾讯微博android客户端开发】Parameter类和SyncHttp 网友自己写的Android腾讯微薄客户端开发教程 Android 所有Dialog 对话框 大合集 详解【附源码】 Android自定义View研究-- 一个小Demo Android...
library-PullScrollView仿照新浪微博Android客户端个人中心的ScrollView,下拉背景伸缩回弹效果library-PullToRefresh下拉刷新ListView,已经停止维护并且有不少bug,不推荐使用项目地址:library-SlidingMenu
Listview顶部松开即可刷新数据效果,类似新浪微博,人人等android客户端刷新数据效果。该源码希望能帮上有需要的朋友。
课程安排 第一天 1>搭建Android开发环境 2> 创建与启动手机模拟器 3> 学习使用ANDROID操作系统 4> 开发与运行(卸载)第一个ANDROID应用 ...第九天以后 讲解Android手机视频客户端、来电知了、新浪微博客户端等项目
第九天以后 讲解Android手机视频客户端、来电知了、新浪微博客户端等项目 项目名称 Android手机视频客户端:本系统专为视频网站与电视媒体而开发的手机视频客户端,通过该软件,手机用户可以在线观看视频,在线...
最近做的类似于微博的项目中,有个Android功能要使用到listview的向下拉刷新来刷新最新消息,向上拉刷新(滑动分页)来加载更多。 新浪微博就是使用这种方式的典型。 当用户从网络上读取微博的时候,如果一下子全部...
这个项目花费了将近一个月的时间,其中很多时间都在学新浪的授权机制和开放平台的api,虽然新浪微博官方提供Android sdk,但是实在看不懂(网上大多开发人员都抱怨新浪微博提供的sdk很烂)所以就索性从最底层开始...
1.本项目实现的主要功能有博客园论坛新闻浏览、博客浏览、新闻实时评论、一键下载到离线内容、博客搜索、一键登录、发表博客园站内说说(站内叫“闪存”)、一键分享内容到常用社交平台(由于开放平台的审核限制,仅...
这个项目完全按照高访问量互联网站进行设计,通过这个项目,学员不仅可以在实战中巩固对前面学习的ASP.Net、ADO.Net、WinForm等知识的掌握,还可以掌握网站防黑、缓存、SEO、静态化、搜索引擎技术、AJAX等大型互联网...