Android-文本类组件
2016-03-23 21:47
405 查看
1.应用TextView显示多种样式的文本
Android:autolink:用于指定是否将指定格式的文本转换为可单击的超级链接形式,属性值有none,web,email,phone,map和all
Android:drawableBottom/Left/Right/Top:用于在文本框内文本的指定方位绘制指定图像
Android:singleLine:用于指定当前文本框是否为单行模式,其属性值为true或false
在java文件中改变文字颜色的两种方法:
1.设置文本时,用到了HTML标记
2.使用SpannableStringBuilder对象的setSpan方法设置文本的显示样式,最后将要显示的文本通过setText方法显示在id为tv4的TextView组件中。
2.为文本框组件添加滚动条
滚动视图用ScrollView表示,用于为其他组件添加滚动条。滚动视图是android.widget.FrameLayout(帧布局管理器)的子类。因此,在滚动视图中可以添加任何想要放入其中的组件。但是,一个滚动视图只能放置一个组件。如果想要放置多个,可以先放置一个布局管理器,再将要放置的其他组件放置到该布局管理器中。
滚动视图ScrollView只支持垂直滚动,如果想要实现水平滚动条,可以使用HorizonalScrollView实现。
在MainActivity类的onCreate()方法中,首先获取布局文件中添加的先行布局管理器,然后创建一个滚动视图和一个文本框对象,再将文本框对象添加到滚动视图中,并设置文本框中要显示的文本,最后将滚动视图添加到先行布局管理器中。
3.使用文本框控件记录历史查询记录
主要用到了SearchView组件及其setOnQueryTextListener方法和onQueryTextSubmit方法
SearchView是Android提供的一个搜索组件,其setOnQueryTextListener方法用来表示输入框文字的监听器,而onQueryTextSubmit方法则用来执行开始查询操作。
当使用SearchView组件查询时,使用文本框的getText方法获取查询内容,并且判断该内容是否为控件,如果不为空,则记录该查询内容,并且使用setText方法显示在文本框中。
在res/menu/创建一个actions.xml文件,用来存储查询动作视图项
Activity类中,首先重写onCreate()方法,该方法中获取布局文件中的TextView组件;然后重写onCreateOptionMenu方法,获得SearchView,然后提交查询事件,并显示在TextView组件中,最后重写onOptionItemSelected()方法,该方法中,弹出用户查询的数据。
Android:autolink:用于指定是否将指定格式的文本转换为可单击的超级链接形式,属性值有none,web,email,phone,map和all
Android:drawableBottom/Left/Right/Top:用于在文本框内文本的指定方位绘制指定图像
Android:singleLine:用于指定当前文本框是否为单行模式,其属性值为true或false
在java文件中改变文字颜色的两种方法:
1.设置文本时,用到了HTML标记
TextView tView1=(TextView)findViewById(R.id.tv3); tView1.setText(Html.fromHtml("大家好<font color=red>改变局部颜色</font>!"));
2.使用SpannableStringBuilder对象的setSpan方法设置文本的显示样式,最后将要显示的文本通过setText方法显示在id为tv4的TextView组件中。
String str="根据段落改变文本颜色"; TextView tView2=(TextView)findViewById(R.id.tv4); SpannableStringBuilder styleBuilder=new SpannableStringBuilder(str); styleBuilder.setSpan(new ForegroundColorSpan(Color.GREEN), 0,4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); styleBuilder.setSpan(new ForegroundColorSpan(Color.YELLOW), 4, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); styleBuilder.setSpan(new ForegroundColorSpan(Color.RED), 6, 11, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tView2.setText(styleBuilder);
2.为文本框组件添加滚动条
滚动视图用ScrollView表示,用于为其他组件添加滚动条。滚动视图是android.widget.FrameLayout(帧布局管理器)的子类。因此,在滚动视图中可以添加任何想要放入其中的组件。但是,一个滚动视图只能放置一个组件。如果想要放置多个,可以先放置一个布局管理器,再将要放置的其他组件放置到该布局管理器中。
滚动视图ScrollView只支持垂直滚动,如果想要实现水平滚动条,可以使用HorizonalScrollView实现。
在MainActivity类的onCreate()方法中,首先获取布局文件中添加的先行布局管理器,然后创建一个滚动视图和一个文本框对象,再将文本框对象添加到滚动视图中,并设置文本框中要显示的文本,最后将滚动视图添加到先行布局管理器中。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LinearLayout ll=(LinearLayout)findViewById(R.id.ll); ScrollView scroll=new ScrollView(MainActivity.this); TextView textView=new TextView(MainActivity.this); textView.setPadding(10, 10, 10, 10); textView.setTextSize(25); scroll.addView(textView); textView.setText("“与怪兽搏斗的人要谨防自己因此而变成怪兽。如果阁下长时间的盯着" + "深渊,那么,深渊也会同样回望着阁下。”" + "与恶龙纠缠过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视。" + "对有些人而言,相遇即是告别。就像流星 划过天际,发出耀眼光芒的同时,也燃烧 殆尽。" + "他们唯一能做的,就是让那道划痕 尽可能地浅。" + "冥冥中,真的有一双翻云覆雨手,心不在焉的摆弄着芸芸众生," + "让我们毫无缘由的爱,莫名其妙的恨。让我们在轮回的漩涡中彼此依赖"); ll.addView(scroll); }
3.使用文本框控件记录历史查询记录
主要用到了SearchView组件及其setOnQueryTextListener方法和onQueryTextSubmit方法
SearchView是Android提供的一个搜索组件,其setOnQueryTextListener方法用来表示输入框文字的监听器,而onQueryTextSubmit方法则用来执行开始查询操作。
当使用SearchView组件查询时,使用文本框的getText方法获取查询内容,并且判断该内容是否为控件,如果不为空,则记录该查询内容,并且使用setText方法显示在文本框中。
在res/menu/创建一个actions.xml文件,用来存储查询动作视图项
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_search" android:actionViewClass="android.widget.SearchView" android:icon="@android:drawable/ic_menu_search" android:showAsAction="ifRoom" android:title="@string/search"> </item> <item android:id="@+id/item1" android:icon="@drawable/icon1" android:showAsAction="ifRoom" android:title="@string/item1"> </item> <item android:id="@+id/item2" android:icon="@drawable/icon2" android:showAsAction="ifRoom" android:title="@string/item2"> </item> <item android:id="@+id/item3" android:icon="@drawable/icon3" android:showAsAction="ifRoom" android:title="@string/item3"> </item> </menu>
Activity类中,首先重写onCreate()方法,该方法中获取布局文件中的TextView组件;然后重写onCreateOptionMenu方法,获得SearchView,然后提交查询事件,并显示在TextView组件中,最后重写onOptionItemSelected()方法,该方法中,弹出用户查询的数据。
private TextView history; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); history = (TextView) findViewById(R.id.history); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.actions, menu); SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) {// 处理提交查询事件 String result = history.getText().toString(); if (!query.isEmpty()) { result += query + "\n"; } history.setText(result); Toast.makeText(ActionViewActivity.this, "查询:" + query, Toast.LENGTH_LONG).show(); return true; } @Override public boolean onQueryTextChange(String newText) {// 处理查询文本修改事件 return true; } }); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { Toast.makeText(this, "选择: " + item.getTitle(), Toast.LENGTH_SHORT).show(); return true; }
相关文章推荐
- 打造Android万能上拉下拉刷新框架--XRefreshView(三)
- Android Studio 的使用——GsonFormat插件的安装
- Android Framework 记录之一
- Android客户端性能优化
- Android 自定义Camera(二)
- Android Screen Monitor抓取真机屏幕
- [android] 隐式意图的配置
- 在Android Studio中有六种依赖
- android官方侧滑菜单DrawerLayout详解
- Android 签名机制:Key的产生方法和签名原理
- Android利用云盘实现手机上传功能
- Android中设计模式--状态模式(将动作委托到当前状态,状态之间可以互相转换)
- Android之下拉刷新的ListView
- Android的材料设计兼容库(Design Support Library)
- 《50 Android Hacks》学习心得一:延迟加载和布局重用
- Android——布局(线性布局linearLayout,表格布局TableLayout,帧布局FrameLayout)
- android:layout_gravity和android:gravity的区别
- 解决Android中的SQLite数据库并发访问
- Android TabLayout、ViewPager实现顶部和底部Tab导航 点击滑动切换Tab页面
- Android之ListView使用总结