listview改变字体大小实例讲解

2016-02-19 10:07 49 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的listview改变字体大小实例讲解,希望大家看完后能赶快学习起来。

【 tulaoshi.com - 编程语言 】

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

主要利用的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 {
ListMapString,Object 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 ListMapString,Object GetDate(){

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

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

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

HashMapString,Object map2=new HashMapString,Object();
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
代码如下:

?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"

/ListView
TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/
/LinearLayout

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1593484.html

延伸阅读
密语怎么设置字体大小   密语设置字体大小教程。看习惯了比较大的字体或者比较小的字体?最近很多小伙伴都跟图老师小编说看不习惯密语的字体,看不习惯的话可以设置的,那么怎么设置字体大小呢?现在图老师小编就教大家密语设置字体大小方法。 1)打开密语,点击有下家的,然后把屏幕向上拉取;(如下图) 2)点击下方...
标签: 浏览器
Firefox如何更改字体大小 Firefox更改字体大小方法。 点击 Firefox 面板上的工具 - 选项 - 内容 - 字体&颜色 - 高级 - 最小字体,将字体设置成12或更大。 着急的话可以使用快捷键Ctrl + +,Ctrl + -,或按住Ctrl然后滚动鼠标滚轮迅速改变网页文字大小。 Linux下的Firefox ,则是在编辑 - 首选项 - 内容 - 字体&...
字体大师如何调整字体大小   1)打开app,点击右上角的图标。   2)点击的按钮,选择一项大小再点击确定,就可以修改成功了。  
车来了怎么设置字体大小   车来了设置字体大小教程。看习惯了偏大或偏小的字体时突然看标准的字体时看不习惯?没关系,是设置手动进行字体大小设置的,那么要怎么设置字体大小呢?现在图老师小编就教大家车来了设置字体大小方法。 1)打开车来了,点击右下角的,然后点击下方的;(如下图) 2)点击下方的,然后点击下...
eclipse字体大小怎么设置步骤   打开eclipse,找到window--preferences,在左边的菜单栏中找到general,appearance在general展开后的第一行,点击展开appearance; 找到colors and fonts,点击; 看到右边字体一列有很多的选项,我们只需要修改basic里面的; 点击展开Basic,最下面有Text Font选项,点击,然后右...

经验教程

523

收藏

49
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部