新浪围脖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);} }


更多相关文章

  1. android之SlidingDrawer实现抽屉效果
  2. Android(安卓)ListView 设定背景图后拖动时整体背景变黑的解决
  3. android GridView条目点击变色
  4. Android(安卓)仿京东分类页面
  5. Android(安卓)Studio Unknown host ‘downloads.gradle.org’
  6. Android(安卓)平台上SDCard的自动mount的解决方法
  7. android学习笔记22:可展开的ListView
  8. Android中自制通讯录中显示出数据库中的姓名和电话号码进行打电
  9. Android(安卓)XRecyclerView实现多条目加载

随机推荐

  1. Android uiautomator实例使用
  2. Android设置Activity全屏和无标题
  3. Android Material design 之 BottomNavig
  4. Android中MenuInflater的使用(布局文件定
  5. Android STL PORT
  6. 传智播客Android视频教程——第二天
  7. android-edittext
  8. android中SharedPreferences的实例
  9. android中使用MediaRecorder进行视频录制
  10. Android(安卓)学习笔记8——传感器使用