新浪围脖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);
}
}
分享到:
相关推荐
本资源"安卓listview相关相关-仿照新浪微博Android客户端个人中心的ScrollView.rar"是开发者为了模仿新浪微博客户端个人中心的滚动视图(ScrollView)而创建的一个示例项目。在实际应用中,ScrollView通常用于承载多...
《构建与优化:新浪微博Android客户端详解》 在移动互联网领域,社交应用占据着举足轻重的地位,其中新浪微博作为国内知名社交媒体平台,其Android客户端的开发与优化是许多开发者关注的焦点。本篇文章将深入探讨...
【标题】:“新浪微博Android客户端代码”揭示了这个项目的核心,即开发者通过自定义实现而非使用新浪官方提供的SDK来构建一个Android平台上的微博客户端。这样的做法可能是因为开发者希望通过更底层的编程来更好地...
《深入剖析:Android源码——新浪微博Android客户端》 在Android开发领域,理解并研究大型应用的源码是提升技能和洞察设计模式的重要途径。本文将围绕"Android源码——新浪微博Android客户端.zip"这一主题,详细...
基于Android的新浪微博系统开发01-开发概述 基于Android的新浪微博系统开发02-下载微博sdk ...基于Android的新浪微博系统开发07-不断扩展的ListView 基于Android的新浪微博系统开发08-动态获取Icon和局部TextVieww
本文将围绕“android新浪微博客户端源码”这一主题,深入探讨源码中的关键技术和设计模式,为Android开发者提供一份详尽的学习资料。 首先,我们要明确,这个开源项目是基于Android平台开发的,主要目标是实现一个...
本篇文章将深入探讨如何在Android中实现ListView的下拉刷新和上拉翻页功能,仿照新浪微博客户端的交互体验。 首先,下拉刷新通常指的是用户在ListView顶部向下滑动时,触发数据的更新加载。这种功能可以实现在用户...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
这个“android新浪微博客户端demo”项目旨在实现接收、发送以及评论微博的功能,这涵盖了Android应用开发的基础以及与社交媒体API的集成。以下是对这些知识点的详细说明: 1. **Android开发环境**:首先,你需要一...
以上就是构建一个仿新浪微博Android客户端所需的关键技术点。通过学习和实践这个项目,开发者可以提升自己的Android应用开发能力,深入理解Android系统的工作原理,以及如何与第三方API进行交互。
从这个星期开始,准备拿新浪微博开放平台做个实践,开发一个功能简单的android客户端,会尽可能的完善功能。 上图是这个客户端的主要界面。今天增加的功能。 1.简单的样式和皮肤,只是添加了按钮。 运行的系统是...
综上所述,开发一个完整的新浪微博Android客户端涉及的知识点广泛且深入,包括OAuth认证、UI设计与布局、网络请求、数据解析、用户交互、异常处理、性能优化以及测试调试等多个方面。这个项目对于初学者来说是一次...
在Android平台上,开发一款功能完善的新浪微博客户端是一项技术挑战与创新的结合。这个项目"Android 新浪微博客户端"展示了如何利用Android SDK和相关的开发工具来构建一个功能丰富的移动应用,为用户提供浏览、发布...
本项目"android开发新浪微博客户端源代码"提供了完整的实现方案,让我们一起深入探讨其中的关键知识点。 1. **Android应用基本架构**: Android应用通常由多个组件构成,如Activity(活动)、Service(服务)、...
今天我们将深入探讨一个特别的项目——“新浪微博 android DEMO”,这是一个专为Android平台设计的新浪微博客户端示例程序,它提供了分享新微博、转发微博、评论以及查询微博等核心功能,对于想要学习Android应用...
在移动应用开发领域,Android平台上的新浪微博客户端是开发者经常研究的一个案例,因为这涉及到Android SDK的使用、网络通信、UI设计以及社交功能的实现等多个方面。本项目基于API-19(即Android 4.0以上版本),...
以上是对"仿新浪微博客户端的Android控件组合应用_修正版"项目中涉及的关键技术点的详细解释,通过这个项目,开发者不仅可以学习到Android控件的综合运用,还能掌握数据加载、用户体验优化等方面的知识。
通过这个完整的攻略,开发者不仅能学会如何创建一个功能完备的新浪微博客户端,还能提升对Android平台整体开发流程的理解。源码分析和实际操作将有助于巩固理论知识,提高动手能力。同时,这样的项目经验对个人简历...
《深入剖析Android应用:基于新浪微博客户端源码》 在Android开发领域,研究知名应用的源码是提升技术能力的重要途径之一。本篇文章将基于“android应用源码(精)新浪微博客户端源码.zip”这一资源,深入探讨其中...