`
不过百里
  • 浏览: 3974 次
社区版块
存档分类
最新评论

Android入门(2)—listview以及textview的折叠展开

阅读更多

先上listview效果图:



 

这次主要是通过编辑器this.listview.setAdapter对列表进行构建:

代码如下:

    private String  data[]={"小工具1","小工具2","小工具3","小工具4","小工具5","小工具6","小工具7","小工具7","小工具9","画板功能","查看事务"};  
    private ListView listview;  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        this.listview=new ListView(this);  
        this.listview.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,this.data));  
        //定义适配器,每行显示一条数据,并设置组件内容  
        super.setContentView(listview);  
          
    }  

 this.listview.setAdapter主要将data中的内容设置到组件中去,我们可以从中体会到适配器的方便快捷和强大。

 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:id="@+id/ScrollView1"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:paddingBottom="@dimen/activity_vertical_margin"  
    android:paddingLeft="@dimen/activity_horizontal_margin"  
    android:paddingRight="@dimen/activity_horizontal_margin"  
    android:paddingTop="@dimen/activity_vertical_margin"  
    tools:context=".list" >  
  
    <LinearLayout  
        android:id="@+id/mylinear"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:orientation="vertical" >  
    </LinearLayout>  
  
</ScrollView> 
 

 另外,本来想通过对listview的监听,跳转到文本折叠页面,但是还没学会。只能展示一下可折叠的textview

  定的xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <com.example.jiang.ExpandableTextView  
        android:id="@+id/lorem_ipsum"  
        android:textSize="20sp"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content" /> 
</LinearLayout>

 

首先通过ExpandableTextView.java设置了文本的折叠和扩展部分:

    private CharSequence originalText;  //原始部分
    private CharSequence trimmedText;  //修建部分
    private BufferType bufferType;  
    private boolean trim = true;  
    private int trimLength;  
   
    public ExpandableTextView(Context context) {  
        this(context, null);  
    }  
   //对可扩展部分的设置
    public ExpandableTextView(Context context, AttributeSet attrs) {  
        super(context, attrs);  
   
        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ExpandableTextView);  
        this.trimLength = typedArray.getInt(R.styleable.ExpandableTextView_trimLength, DEFAULT_TRIM_LENGTH);  
        typedArray.recycle();  
   
        setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                trim = !trim;  
                setText();  
                requestFocusFromTouch();  
            }  
        });  
    }  
   
    private void setText() {  
        super.setText(getDisplayableText(), bufferType);  
    }  
   //获取可显示部分
    private CharSequence getDisplayableText() {  
        return trim ? trimmedText : originalText;  
    }  
   //从所有原文本中获取修剪后的文本
    @Override  
    public void setText(CharSequence text, BufferType type) {  
        originalText = text;  
        trimmedText = getTrimmedText(text);  
        bufferType = type;  
        setText();  
    }  
   
    private CharSequence getTrimmedText(CharSequence text) {  
        if (originalText != null && originalText.length() > trimLength) {  
            return new SpannableStringBuilder(originalText, 0, trimLength + 1).append(ELLIPSIS);  
        } else {  
            return originalText;  
        }  
    }  
   
    public CharSequence getOriginalText() {  
        return originalText;  
    }  
   //设置修剪长度
    public void setTrimLength(int trimLength) {  
        this.trimLength = trimLength;  
        trimmedText = getTrimmedText(originalText);  
        setText();  
    }  
   //获得修剪长度
    public int getTrimLength() {  
        return trimLength;  
    }  

 然后通过MyAactivity将数据插入到textview中:

        String yourText = "于结绳记事和契刻记事的不足,人们不得不采用一些其它的、譬如图画的方法来帮助记忆、表达思想,绘画导致了文字的产生"
        		+ ".唐兰先生在《中国文字学》中说:“文字的产生,本是很自然的,几万年前旧石器时代的人类,已经有很好的绘画,这些画大抵是动物和人像,"
        		+ "这是文字的前驱.”然而图画发挥文字的作用,转变成文字,只有在“有了较普通、较广泛的语言”之后才有可能.譬如,有人画了一只虎,大家"
        		+ "见了才会叫它为“虎”;画了一头象,大家见了才会叫它为“象”.久而久之,大家约定俗成,类似于上面说的“虎”和“象”这样的图画,就介于图"
        		+ "画和文字之间,久而用之了.随着时间的推移,这样的图画越来越多,画得也就不那么逼真了.这样的图画逐渐向文字方向偏移,最终导致文字从图画"
        		+ "中分离出来.这样,图画就分了家,分成原有的逼真的图画和变成为文字符号的图画文字.图画文字进一步发展为象形文字.正如中国文字学所说:"
        		+ "“文字本于图画,最初的文字是可以读出来的图画,但图画却不一定都能读.后来,文字跟图画渐渐分歧,差别逐渐显着,文字不再是图画的,而"
        		+ "是书写的.而书写的技术不需要逼真的描绘,只要把特点写出来,大致不错,使人能认识就够了.”这就是原始的文字. ";  
        //插入内容
        ExpandableTextView expandableTextView = (ExpandableTextView) findViewById(R.id.lorem_ipsum);  
        expandableTextView.setText(yourText);  

 

效果图:

折叠(末尾有省略号):


 点击文字部分即可展开,展开效果:

 

  • 大小: 100.4 KB
  • 大小: 160 KB
  • 大小: 292.1 KB
分享到:
评论

相关推荐

    android动画实现ListView折叠展开

    本篇文章将深入探讨如何使用Android原生动画来实现ListView的折叠与展开效果。 首先,我们需要理解Android中的ListView工作原理。ListView通过复用视图(view recycling)机制提高了性能,当一个item滑出屏幕时,它...

    Listview嵌套Listview,支持折叠展开

    总之,实现ListView嵌套ListView并支持折叠展开需要对Android的ListView机制有深入理解,包括Adapter、视图复用和事件处理。合理的设计和优化可以为用户提供直观且高效的界面。在实际开发中,可以根据项目需求选择...

    Android listview 分组及折叠分组

    本篇文章将深入探讨如何在Android中实现ListView的分组以及折叠功能。 首先,我们需要理解ListView的基本工作原理。ListView通过Adapter来绑定数据源,Adapter负责将数据转化为可显示的View。在分组ListView中,...

    android listview嵌套listview实现折叠列表

    本文将详细介绍如何在Android中使用ListView实现嵌套的可折叠效果。 首先,我们需要了解基本的ListView工作原理。ListView通过Adapter来绑定数据源,Adapter负责将数据转化为ListView可显示的View。在Android中,...

    listview textview水平滚动

    在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。然而,有时我们希望在ListView的每一项中包含的TextView能够实现水平滚动效果,这样可以更好地展示宽度过大的文本内容。本教程将深入探讨如何...

    Android ListView,TextView跑马灯Demo

    综上所述,这个"Android ListView,TextView跑马灯Demo"展示了如何在ListView的每一项中实现TextView的跑马灯效果。通过正确设置TextView的属性和ListView的焦点管理,我们可以在应用中创建出动态、吸引人的UI元素,...

    android的listview嵌套listview,列表嵌套列表 android studio版本

    总结来说,实现Android的ListView嵌套ListView需要理解ListView的工作机制,创建并管理两个Adapter,以及在布局文件中正确地嵌套ListView。这虽然不是特别高深的技术,但却是Android开发中常见的需求,熟练掌握能...

    android核心控件使用,button 、ListView、TextView

    以上就是关于Android核心控件Button、ListView和TextView的详细介绍,以及压缩包中可能包含的相关示例。掌握这些基础控件的使用是成为一名合格的Android开发者的关键步骤,通过不断实践和学习,你可以创建出功能强大...

    TextView与ListView简单用法

    在Android开发中,`TextView`和`ListView`是两个非常重要的UI组件,它们在构建用户界面时起着关键作用。`TextView`用于显示文本信息,而`ListView`则用于展示可滚动的列表数据。本篇文章将详细介绍这两个组件的简单...

    Android-ExpandTextView-展开收起功能的TextView

    ExpandTextView-f88ee40`源码中,主要包含`ExpandTextView`类,它继承自`android.widget.TextView`并重写了部分方法,如`onTouchEvent`用于处理点击事件,以及`setExpandText`和`setCollapseText`用于设置展开和收起...

    android ListView向下展开 抽屉效果

    "android ListView向下展开 抽屉效果"是指在用户点击ListView中的某一项时,该项会像抽屉一样向下展开,显示更多的信息或者子项。这种效果常用于实现菜单、导航栏或者详细信息的展示,提升了用户体验和交互性。下面...

    android ListView Item展开效果

    这就涉及到了“android ListView Item展开效果”的实现。 ListView的Item展开效果通常通过使用ExpandableListView来实现。ExpandableListView是ListView的一个扩展,它不仅支持普通的单行显示,还能处理分组(Group...

    android dialog嵌套ListView

    以上就是关于“android dialog嵌套ListView”实现的基本步骤,包括创建自定义布局、适配器、设置点击事件以及在`Dialog`中显示`ListView`。通过这种方式,我们可以在`Dialog`中展示丰富的列表数据,并允许用户进行...

    android TextView android TextView

    ### Android TextView与ListView的Transcript Mode属性详解 在Android开发过程中,经常需要用到各种视图组件来展示信息。其中,`TextView`和`ListView`是非常重要的两个组件。它们不仅用于简单的文本展示,还可以...

    android studio实现listview的增加,左滑删除

    在本文中,我们将深入探讨如何在Android Studio中实现ListView的动态增加以及左滑删除功能,这将帮助你构建更加用户友好的应用程序。 首先,我们需要创建一个ListView的基础结构。在Android Studio中,打开布局XML...

    Android漂亮的Listview完整版本

    从提供的文件信息来看,文件标题为“Android漂亮的Listview完整版本”,描述中提到这是对Android中ListView控件开发全过程的介绍,同时文件中包含了一些标签和部分xml布局文件的代码。接下来我将对这些知识点进行...

    Android应用源码 ListView下拉刷新 Demo

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。ListView下拉刷新功能是现代移动应用中的一个常见特性,允许用户通过下拉列表来获取最新的数据,如社交媒体的新消息或天气更新。这个"Android...

    Android之ListView列表视图和界面跳转实现

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据的列表形式。它具有高度可定制性,能够实现各种自定义布局和交互效果。本教程将深入讲解如何实现一个基本的ListView,并在用户点击列表项时跳转到...

    Android编程实现ListView中item部分区域添加点击事件功能

    本文实例讲述了Android编程实现ListView中item部分区域添加点击事件功能。分享给大家供大家参考,具体如下: 需求如题目:Android listview中item部分区域添加点击事件,在一个界面显示了listview,但显示的内容分为...

    Android手势研究(textview及listview对比验证)(二)

    本文将探讨在TextView和ListView这两种常见组件上实现手势检测的方法,并进行对比验证,以此来提升Android应用的交互性。我们将主要关注以下几个方面: 1. **手势识别基础**: 手势识别在Android中主要通过`...

Global site tag (gtag.js) - Google Analytics