热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

listview改变字体大小实例讲解

点击字体,字体变大在本教程中将使用listview实现,不会不懂的朋友可以参考下哈,希望对你有所帮助

效果:点击字体,字体变大

主要利用的getView()方法和setOnItemClickListener()方法
ListText.java

代码如下:

package lt.com;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class ListText extends Activity {
List> mData;
public static int select_item = -1;
//MyAdapter adapter;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView lv=(ListView)findViewById(R.id.lv) ;
mData= GetDate();
final MyAdapter adapter =new MyAdapter(this);
lv.setAdapter(adapter);
Log.v("tag", "100");
//点击事件
lv.setOnItemClickListener(new OnItemClickListener(){

public void onItemClick(AdapterView arg0, View arg1, int arg2,
long arg3) {
select_item = arg2; //当前选择的item
adapter.notifyDataSetChanged(); //通知adapter刷新数据
Log.v("tag", "1");
}
public void onNothingSelected(AdapterView arg0) {

}

});
}
//item相关信息 名称 图片
public List> GetDate(){

List> list=new ArrayList>(); //存在一个大仓库,摆放着很多抽屉 ,list相当把抽屉放进仓库。
// 这是upcast 或者ArrayList> list=new ArrayList>();也行

Map map=new HashMap();//抽屉,里面有东西。
map.put("text", "中国");//把东西放到抽屉里面
list.add(map);//把抽屉放到仓库里

HashMap map1=new HashMap();
map1.put("text", "美国");
list.add(map1);

HashMap map2=new HashMap();
map2.put("text", "日本");
list.add(map2);

return list;
}
//自定义适配器
public class MyAdapter extends BaseAdapter{
private LayoutInflater mInflater;//Instantiates a layout XML file into its corresponding View objects.
private int select_item;
public MyAdapter(Context context){
this.mInflater = LayoutInflater.from(context);//Obtains the LayoutInflater from the given context.
}

//item的数量
public int getCount() {
// TODO Auto-generated method stub
return mData.size();
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
//convertView是复用的view,如果没有旧的就新建个新的view;parent是listview
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder = null;
if(cOnvertView==null){
holder=new ViewHolder();
cOnvertView=mInflater.inflate(R.layout.main, null);//Inflate a new view hierarchy from the specified xml resource.
holder.texta = (TextView)convertView.findViewById(R.id.text);
convertView.setTag(holder);//Sets the tag associated with this view , A tag can be used to mark a view in its hierarchy and does not have to be unique within the hierarchy.
//这个view是holder绘制的
}
else{
holder = (ViewHolder)convertView.getTag();//get tag
}
holder.texta.setText((String)mData.get(position).get("text"));
this.select_item = ListText.select_item;
try{
if(this.select_item == position){
holder.texta.setTextSize(50); //选中的Item字体:50px
Log.v("tag", "3");
}
else
holder.texta.setTextSize(20); //未选中的Item字体:10px
Log.v("tag", "2");
}catch(Exception ex){
ex.printStackTrace();
}


return convertView;
}
}
/** listView 中某项被选中后的逻辑
protected void onListItemClick(ListView l, View v, int position, long id) {
select_item = position; //当前选择的item
// adapter.notifyDataSetChanged(); //通知adapter刷新数据

Log.v("tag", "1");
}
*/
public final class ViewHolder{
TextView texta;

}
}

main.xml
代码如下:


android:layout_
android:layout_
android:orientation="vertical" >
android:id="@+id/lv"
android:layout_
android:layout_
>

android:id="@+id/text"
android:layout_
android:layout_
/>


推荐阅读
  • MyBatis模糊查询和多条件查询一、ISmbmsUserDao层根据姓名模糊查询publicListgetUser();多条件查询publicList ... [详细]
  • Android的四种启动模式
     对Android的启动模式不是很了解,这里记录下简单的理解内容以便日后查看。 Androi的四种启动模式分别为:standard,singleTop,singleTask,sing ... [详细]
  • 一、使用ContentProvider(内容提供者)共享数据ContentProvider在android中的作用是对外共享数据,也就是说 ... [详细]
  • FroggerTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:32257Accepted:10396DescriptionFr ... [详细]
  • 开发笔记:sql盲注之报错注入(附自动化脚本)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了sql盲注之报错注入(附自动化脚本)相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 软件自动化测试的学习路线
    软件自动化测试的学习步骤软件测试交流群关注软件测试技术公众号获取阅读目录软件自动化测试的学习步骤自动化测试的本质自动化测试学习的误区自动化测试的职位自动化测试分类Web自动化 ... [详细]
  • wsimport“ ... [详细]
  • 一、基本Tag1.Tag定义了Item实例,有三个基本的属性来定义一个item实例,大小写敏感。id-每个Item实例的唯一标识type ... [详细]
  • Java发布webservice应用并发送SOAP请求调用
    webservice框架有很多,比如axis、axis2、cxf、xFire等等,做服务端和做客户端都可行,个人感觉使用这些框架的好处是减少了对于接口信息的解析,最主要的是减少了对于传递于网络中XML ... [详细]
  • Flex中使用filter过滤数据 ... [详细]
  • intellij idea修改maven配置时总是恢复默认配置的解决方法idea版本(2020.2.x)_java
    这篇文章主要介绍了intellijidea修改maven配置时总是恢复默认配置的解决方法idea版本(2020.2.x),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考 ... [详细]
  • 大数据分析Python有哪些爬虫框架
    一、ScrapyScrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。。用 ... [详细]
  • nvmw安装,用于控制node版本;
    之前一直使用的是nodev2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;上网一看才发现,尼玛的node已经到了6.+版本了,好 ... [详细]
  • hibernate映射组件映射
    在Hibernate中,component是某个实体的逻辑组成部分,它与实体的根本区别是没有oid(对象标识符),compo ... [详细]
  • 在ROS系统中,参数读写一般通过xml或者yaml格式的文件,其中yaml用得比较多。这是一种可读性高,轻量级的标记语言,简单好用。对于yaml文件,ros中用的较早版本的yaml- ... [详细]
author-avatar
zhaiweibubu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有