Android片段实现列表和内容联动

  

在平板上经常能看到这种的情况:左边是一个列表,右边是列表项对应的内容,当点击某一个列表时,右边内容区也会随之改变。下面使用片段简单的演示:

  

思路:在MainActivity定义一个回调接口,并在列表点击回调该接口,然后在内容区的片段设置回调,同时改变片段的显示内容。具体代码如下:

  

主布局:

        & lt; LinearLayout xmlns: android=" http://schemas.android.com/apk/res/android "   面向android:="水平"   android: layout_width=" match_parent "   android: layout_height=" match_parent "   android: layout_marginLeft=" 16 dp "   android: layout_marginRight=" 16 dp "   android:分频器=" & # 63;android: attr/dividerVertical”   android: showDividers=爸屑洹北?      & lt;列表视图   android: id=癅 + id/book_list”   android: layout_width=" 0 dp”   android: layout_height=" match_parent "   android: layout_weight=" 1 "/比;      & lt; FrameLayout   android: id=癅 + id/book_detail_container”   android: layout_width=" 0 dp”   android: layout_height=" match_parent "   android: layout_weight=3/比;      & lt;/LinearLayout>      

列表视图项的布局和内容区片段的布局都比较简单,分别是一个Textview和两个Textview布的局,这里不再贴出。

  

MainActivity类(内容区的数据是写死的,仅仅做演示作用,一般来说需要从网络上获取数据):

        公开课MainActivity延伸活动   {   私人>   公共类适配器BaseAdapter延伸   {   私人ListmData;   私人LayoutInflater LayoutInflater;   私人int selectionPosition=1;   公共适配器(List数据,上下文语境)   {   这一点。mData=https://www.yisu.com/zixun/data;   这一点。layoutInflater=LayoutInflater.from(上下文);   }      @Override   公共int getCount ()   {   返回mData.size ();   }      @Override   公共对象getItem (int位置)   {   返回mData.get(位置);   }      @Override   公共长getItemId (int位置)   {   返回的位置;   }      @Override   公众视线getView (int位置、视图convertView ViewGroup ViewGroup)   {   ViewHolder ViewHolder=零;   如果(convertView==null)   {   viewHolder=new viewHolder ();   convertView=layoutInflater.inflate(出来。item_layout, null);   viewHolder。电视=(TextView) convertView.findViewById (R.id.item_text);   convertView.setTag (viewHolder);   }   其他的   {   viewHolder=(viewHolder) convertView.getTag ();   }      viewHolder.tv.setText (mData.get(位置));   如果位置(selectionPosition==)   {   viewHolder.tv.setBackgroundColor (Color.YELLOW);   }   其他的   {   viewHolder.tv.setBackgroundColor (Color.WHITE);   }   返回convertView;   }      公共空间setSelectedPosition (int位置)   {   这一点。selectionPosition=位置;   }      类ViewHolder   {   TextView电视;   }   }      

内容区类的片段:

        公开课MyFragment延伸片段   {   MainActivity活动;   私人TextView标题;   私人TextView desc;   @Nullable   @Override   公众视野>   公共类的书   {   私人int id;   私人字符串名称;   私人字符串desc;   公众书()   {   }      公共图书(int id、字符串名称字符串desc)   {   这一点。id=id;   this.name=名称;   this.desc=desc;   }      公共空间setName(字符串名称){   this.name=名称;   }      公共空间setId (int id) {   这一点。id=id;   }      公共空间setDesc(字符串desc) {   this.desc=desc;   }      公共int getId () {   返回id;   }      公共字符串getName () {   返回名称;   }      公共字符串getDesc () {   返回desc;   }   }      

效果:   

 Android片段实现列表和内容联动

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Android片段实现列表和内容联动