当前位置:  编程技术>移动开发

listview改变字体大小实例讲解

    来源: 互联网  发布时间:2014-10-14

    本文导语:  效果:点击字体,字体变大 主要利用的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.Alert...

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

主要利用的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
代码如下:








    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing.text.html类listview的类成员方法: listview定义及介绍
  • ScrollView与ListView合用(正确计算Listview的高度)的问题解决
  • java命名空间javax.swing.text.html类listview的类成员方法: setpropertiesfromattributes定义及介绍
  • android ListView的右边滚动滑块启用方法 分享
  • java命名空间javax.swing.text.html类listview的类成员方法: paint定义及介绍
  • android中ListView多次刷新重复执行getView的解决方法
  • java命名空间javax.swing.text.html类listview的类成员方法: paintchild定义及介绍
  • c# ListView实现双击Item事件的变通方法
  • andriod中ListView, listItem布局和convertView的缓存与重用详解
  • Android Horizontal ListView
  • C# ListView双击Item事件
  • 谁能给我一个minigui中listview的例子?急!!!!
  • android中如果为listview的item添加listener,也能为item中的button添加listener
  • Android笔记之:在ScrollView中嵌套ListView的方法
  • android ListView自动滚动方法
  • 滑动刷新的ListView Android PullToRefresh
  • C# Winform 禁止用户调整ListView的列宽
  • android listview 水平滚动和垂直滚动的小例子
  • C# listview添加combobox到单元格的实现代码
  • 解决EditText、ListView以及GridView同时使用,输入法自动跳出来的方法
  • Android用ListView显示SDCard文件列表的小例子


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3