`
我爱3G
  • 浏览: 29984 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Text控件运用小收集

阅读更多
一、Android API之TextView.BufferType代码演示

TextView.BufferType并不是TextView的内部类,是一个枚举类型,设置有三个枚举值,分别为NORMAL,EDITABLE,SPANNAABLE。
对于EDITABLE,多用于在保存数据持久化,而SPANNAABLE则用于设置如TextView,EditText对象里的局部属性设置。 而对于网络上关于EDITABLE之于NORMAL的差异,主要是说EDITABLE之后可以使用textview的append方法,有点类似String和StringBuffer的区别。但我在测试时发现,无论NORMAL还是EDITABLE,都可使用TextView的append方法。当然,我自身理解得也不透彻。对于EDITABLE数据持久化保存则使用了SharedPreferences,参考了Android的ApiDemos。

如下为代码范例:
(1)Activity类代码:
private TextView textView1,textView2,textView3;
    private EditText editText1,editText2;
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      //main.xml中定义的UI组件
      textView1=(TextView)findViewById(R.id.textView1);
      textView2=(TextView)findViewById(R.id.textView2);
      textView3=(TextView)findViewById(R.id.textView3);
      editText1=(EditText)findViewById(R.id.editText1);
      editText2=(EditText)findViewById(R.id.editText2);
    
      //设置textView1为TextView.BufferType.NORMAL
      textView1.setText(textView1.getText(),TextView.BufferType.NORMAL);
      textView1.append("  Append from textView1");
    
      //设置textView2为TextView.BufferType.EDITABLE 
      textView2.setText(textView2.getText(), TextView.BufferType.EDITABLE);
      textView2.append("  Append from textView2");
    
      //设置textVIew3中Text内容的起始和终止需处理字符的索引位置
      int start=(textView3.getText()).toString().indexOf('i');
      int end=(textView3.getText()).toString().indexOf('V');
    
     //设置textView3为TextView.BufferType.SPANNABLE
      textView3.setText(R.string.textView3, TextView.BufferType.SPANNABLE);
      Spannable span=(Spannable)textView3.getText();
      span.setSpan(newBackgroundColorSpan(Color.BLUE), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
      span.setSpan(newStyleSpan(Typeface.BOLD_ITALIC),start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    
      //设置editText1为TextView.BufferType.SPANNABLE
      editText1.setText(editText1.getText(),TextView.BufferType.SPANNABLE);
      Spannable span1=(Spannable)editText1.getText();
      span1.setSpan(newBackgroundColorSpan(Color.RED), 2, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
     
    }

    @Override
    protected void onResume() {
       // TODO Auto-generated method stub
       super.onResume();
     
       //修改editText2内容后,将通过SharedPreferences保存,保证程序重启后数据持久存在
       SharedPreferences prefs=getPreferences(0);
       String restore=prefs.getString("text", null);
       if(restore!=null){
         
           //设置editText2为TextView.BufferType.EDITABLE
           editText2.setText(restore,TextView.BufferType.EDITABLE);
         
           intstart=prefs.getInt("start", -1);
           intend=prefs.getInt("end", -1);
         
           if(start !=-1 && end!=-1){
           editText2.setSelection(start, end);
           }
       }
    }
    @Override
    protected void onPause() {
       // TODO Auto-generated method stub
       super.onPause();
       SharedPreferences.Editor editor=getPreferences(0).edit();
       editor.putString("text", editText2.getText().toString());
       editor.putInt("start", editText2.getSelectionStart());
       editor.putInt("end", editText2.getSelectionEnd());
       editor.commit();
    }

(2)main.xml主要部分
  <TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="This is the TextView.BufferType-NORMAL"
    />
  
     <TextView
    android:id="@+id/textView2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="This is the TextView.BufferType-EDITABLE"
    />
  
    <TextView
    android:id="@+id/textView3"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="This is the TextView.BufferType-SPANNABLE"
    />
  
   <EditText
    android:id="@+id/editText1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="This is EditText for TextView.BufferType-SPANNABLE"
    android:freezesText="true">
    <requestFocus />
    </EditText>
    <EditText
    android:id="@+id/editText2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="This is EditText for TextView.BufferType-EDITABLE"
    android:freezesText="true">
    <requestFocus />
    </EditText>

分享到:
评论

相关推荐

    JSP实现连接数据库控件运用

    在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页...同时,合理使用HTML控件收集用户信息,确保用户体验的同时也要注重程序的安全性。这个压缩包"TextJSP"可能包含了实现上述功能的示例代码,供学习和参考。

    安卓控件运用

    "安卓控件运用"是一个针对初学者的专题,旨在深入理解并熟练运用各种安卓控件进行UI设计。在这个主题下,我们将探讨一些核心的安卓控件及其用法,同时也会涉及到基础的安卓开发概念。 首先,我们从基础控件开始。...

    我收集的一些控件

    在本资源包中,“我收集的一些控件”显然包含了关于控件的集合,特别是针对ASP.NET平台的控件以及可能包含的一些图标资源。下面我们将深入探讨ASP.NET控件及其在Web开发中的应用,以及图标在用户界面设计中的重要性...

    用HTML控件实现注册与登录页面

    HTML控件是构建网页交互界面的基础,用于收集用户输入数据和提供用户操作界面。在创建Web系统的注册与登录页面时,HTML控件扮演着至关重要的角色。本实验旨在通过实践来熟悉这些控件的使用方法。 一、用户注册页面 ...

    Android简单控件的开发及应用

    在Android应用开发中,控件是构建用户界面的基础元素,它们允许用户与应用程序进行交互。本章"Android简单控件的开发及应用"主要...在实际开发中,应根据项目需求灵活运用各种控件和布局,创造出符合用户需求的界面。

    ASP.NET基本控件综合应用

    这些控件在网页设计中扮演着至关重要的角色,它们用于收集用户输入,提供选项选择,以及数据展示。 1. RadioButton(单选按钮):RadioButton控件用于为用户提供一组互斥的选择。在一个组内,用户只能选择一个...

    ASP—单元三 Web服务器控件.pdf

    此外,通过添加Label控件显示标题,TextBox控件收集管理员信息,Button控件处理注册请求,可以实现完整的用户交互流程。 对于其他控件,如RadioButton和RadioButtonList,它们用于实现单选选项;CheckBox和CheckBox...

    android 常用控件使用方法示例大全(AndroidProject) .zip

    这个名为"AndroidProject"的项目库提供了大量示例代码,帮助开发者深入理解并熟练运用Android控件。以下是一些关键控件及其使用方法的详细说明: 1. **Button(按钮)**:Button是Android中最基本的交互元素,用于...

    列表控件的操作

    列表控件在软件开发中是一种常见的用户界面元素,它用于展示多条有序的数据,并且通常支持用户进行交互操作,如浏览、添加、删除等。在本主题中,我们将深入探讨"列表控件的操作",主要关注如何实现通过点击“添加”...

    网站中控件的应用

    1. 输入控件:如文本框(Text Box)、密码框(Password)、日期选择器(Date Picker)等,允许用户输入文本、数字或特定格式的数据。这些控件在表单中尤其常见,用于收集用户的个人信息或查询信息。 2. 按钮控件:...

    c#文本框与面板控件

    总之,理解和熟练运用`TextBox`和`Panel`控件,对于构建高效且用户友好的C#应用程序至关重要。通过灵活地组合这些控件以及它们的属性、方法和事件,开发者可以创建出符合需求的丰富多样的用户界面。

    使用HTML开发商业网站-表单控件-input课件.pptx

    在开发商业网站时,HTML 表单控件是构建用户交互界面的关键组成部分,尤其是对于登录、注册和其他数据收集功能。`&lt;input&gt;` 控件是 HTML 表单中最核心的...了解并熟练运用这些控件,是成为一名优秀的前端开发者的基础。

    WPF 如何获取有哪些 VisualBrush 用了某个控件.rar

    这意味着你可以将任何可视元素,包括Button、TextBlock或其他自定义控件,作为画刷来绘制背景或者其他图形元素。 二、为何需要检测VisualBrush 在某些高级的UI设计或动态主题应用中,可能需要知道哪些控件或元素的...

    TabControl控件

    在本压缩包中,我们收集了一些关于Tab控件使用的实例,这些实例可以帮助开发者更好地理解和应用TabControl。 1. TabControl的基本结构 TabControl主要由两部分组成:标签页(TabPage)和内容区域。标签页显示在...

    c#中textbox 以及窗体的代码

    在C#编程中,TextBox控件是Windows Forms应用程序中常用的一种元素,用于用户输入文本。窗体(Form)则是应用程序...通过灵活运用控件属性、事件以及窗体方法,开发者能够创建出功能丰富的用户界面并实现与用户的交互。

    CH07.11.11-表单控件绑定.rar

    表单控件是网页上用于收集用户输入的元素,如文本框、复选框、单选按钮、下拉列表等。在传统的HTML表单中,这些控件通常通过`name`属性来识别,并在提交表单时发送到服务器进行处理。然而,在现代Web开发中,我们...

    List_text.rar_列表框

    在IT领域,尤其是在软件开发和用户界面设计中,控件如文本框(Text Box)和列表框(List Box)是构建交互式应用程序的关键元素。这些控件使得用户能够输入、查看和选择信息,从而实现人机之间的有效沟通。在本讨论中...

    ASP.NET2.0中用Gridview控件操作数据的代码

    `Button1_Click`事件处理程序用于收集Footer模板中的数据,插入到数据源中,并刷新Gridview以显示新插入的记录。`CancelButton1_Click`事件处理程序则用于清除Footer模板中的输入数据。 ```csharp protected void...

    第七课 表单控件-011

    在前端开发中,表单控件是不可或缺的一部分,它们用于收集用户数据并将其发送到服务器进行处理。本节我们将深入探讨五个主要的表单控件:文本输入框、密码字段、文本域、单选与多选、按钮以及下拉菜单,并了解如何...

    黑马程序员python基础班教程笔记:HTML表单常用控件1.docx

    在HTML中,表单是网页交互的核心元素,用于收集用户输入的数据。本篇教程主要讲解了HTML中的几个常见表单控件,包括单行文本...理解并熟练运用这些控件,可以提升网页的用户体验,并且在处理用户输入时更加高效和准确。

Global site tag (gtag.js) - Google Analytics