ListView的一些使用方式
来源:互联网 发布:java nio io 区别 编辑:程序博客网 时间:2024/06/05 15:55
直接上代码
main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.Harris.listview1activity.ListView1Activity" > <TextView android:id="@+id/topText" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="最喜欢的球类运动" android:textSize="20sp"/> <ListView android:id="@+id/lstPrefer" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/txtResult" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="显示消息" android:textSize="20sp" /> <Button android:id="@+id/btnDo" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="选择" /></LinearLayout>
package com.Harris.listview1activity;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;public class ListView1Activity extends Activity {private ListView lstView;private TextView txtResult,topText;String[] Balls ={"篮球","足球","棒球","橄榄球","其他"};private Button btnDo;private int count;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);topText =(TextView) findViewById(R.id.topText);lstView = (ListView) findViewById(R.id.lstPrefer);txtResult = (TextView) findViewById(R.id.txtResult);btnDo = (Button) findViewById(R.id.btnDo);//Eclipse自动添加的ArrayAdater看到参数为(Context context,int resources) //这句话是创建ArrayAdapter并设置样式ArrayAdapter<String> adapterBalls = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice,Balls);lstView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);//以下设置ListView的数据源lstView.setAdapter(adapterBalls);//获取当前选择的项目数,接下来的监听器循环要用count = adapterBalls.getCount();//绑定监听器啦啦啦lstView.setOnItemClickListener(new lstViewListener());btnDo.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {String selAll="";for(int p =0;p<count;p++){if(lstView.isItemChecked(p))selAll+= Balls[p]+"";}txtResult.setText("我最喜欢的球类运动是"+selAll);}});}//下面就是制作触发动作的监听器这一类的老生常谈了class lstViewListener implements OnItemClickListener{@Overridepublic void onItemClick(AdapterView<?> parent, View v, int position,long id) {String sel = parent.getItemAtPosition(position).toString();if(lstView.isItemChecked(position)){topText.setText("目前选择"+sel);}else{topText.setText("目前选择 ");}}}}
以上就是ListView的复选框设置以及同时使用OnItemSelectedListener和OnClickListener监听以及使用内部类和匿名内部类的方法,哈哈。
------------------------------------------------------------------------------分割线君-------------------------------------------------------------------------------------------
接下来就是对于listView的私人订制了,通过在MyAdapter中生成一个LayoutInflater,
使用预先在res/layout文件夹里面写好的fruitlayout.xml(这里一个大写字母都不行!!!,不是名字开头也不行!!!)
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.Harris.ch07_ex1.MainActivity" > <Button android:id="@+id/addButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="加入购物车" android:layout_below="@id/action_bar_title" /> <TextView android:id="@+id/txtResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="已选择的物品" android:layout_below="@id/addButton" /> <ListView android:id="@+id/lstFruit" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/txtResult" /></RelativeLayout>
fruitlayout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.Harris.ch07_ex1.MainActivity" > <ImageView android:id="@+id/imgLogo" android:layout_width="50sp" android:layout_height="50sp" android:src="@drawable/f014" android:layout_margin="10sp" /> <LinearLayout android:id="@+id/LinerLayout2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/txtname" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="第一行文字" android:textSize="24sp" android:textColor="#ff00ff" android:layout_marginLeft="10sp" android:layout_marginTop="5sp" /> <TextViewandroid:id="@+id/txtengname"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="第二行文字" android:textSize="16sp"android:textColor="#00ff00"android:layout_marginLeft="10sp" /> </LinearLayout></LinearLayout>
Java代码
package com.Harris.ch07_ex1;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends Activity {private Button addButton;private ListView lstFruit; private TextView txtResult;int[] resIds = new int[]{R.drawable.f014,R.drawable.f015,R.drawable.f016,R.drawable.f017,R.drawable.f018};private String[] Fruits = {"苹果","香蕉","葡萄","香瓜"};private String[] engnames={"apple","banana","grape","pineapple"};private int count;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);addButton= (Button) findViewById(R.id.addButton);lstFruit = (ListView) findViewById(R.id.lstFruit);txtResult = (TextView) findViewById(R.id.txtResult);lstFruit.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);lstFruit.setAdapter(new MyAdapter(this));addButton.setOnClickListener(new addListener());lstFruit.setOnItemClickListener(new lstFruitListener());}class addListener implements OnClickListener{int count = Fruits.length;@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString selAll="";for(int p=0;p<count;p++){if(lstFruit.isItemChecked(p))selAll+=Fruits[p]+"";}txtResult.setText(selAll);}}class lstFruitListener implements OnItemClickListener{@Overridepublic void onItemClick(AdapterView<?> parent, View v, int position,long id) {if(lstFruit.isItemChecked(position)){String sel=parent.getItemAtPosition(position).toString();txtResult.setText(sel);}else{txtResult.setText(" ");}}}public class MyAdapter extends BaseAdapter{//生成一个LayoutInflater对象,就靠它提取我们之前写的xml构建一个View啦。private LayoutInflater myInflater;//继承了BaseAdapter就是有这么多的方法需要复写,而且都不是空白意义的public MyAdapter(Context c) {myInflater= LayoutInflater.from(c);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn Fruits.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn Fruits[position];}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Override//几个参数,positon是用作数组下标,convertView是新构建的View,Groupparent暂时还不清楚哈public View getView(int position, View convertView, ViewGroup Groupparent) {convertView = myInflater.inflate(R.layout.fruitlayout,null);ImageView imgLogo = (ImageView) convertView.findViewById(R.id.imgLogo);TextView txtname = (TextView) convertView.findViewById(R.id.txtname);TextView txtengname = (TextView) convertView.findViewById(R.id.txtengname);imgLogo.setImageResource(resIds[position]);txtname.setText(Fruits[position]);txtengname.setText(engnames[position]);return convertView;}}}
注意先前要在resource文件夹里面放几张照片,谢谢。
这个程序只是我照着书上的代码敲下来的,完全只是为了学习之前让人头疼不已的ListView的问题才写的,先留在这里,改天回来再优化。
完事。
0 0
- ListView的一些使用方式
- ListView的使用方式
- listview使用的一些心得
- C++的一些使用方式
- IniEdit中listview的一些使用
- android ListView之BaseAdapter的使用方式
- 使用自定义Adapter的ListView优化方式
- json-lib的一些使用方式
- Freemarker一些特殊的使用方式
- 关于sublime的一些使用方式
- 一些资源文件的使用方式
- RecyclerView的使用和与ListView的一些不同之处
- ListView的一些应用
- listView的一些总结
- ListView的一些属性
- listview的一些属性
- ListView的一些属性
- ListView的一些属性
- SSH---Spring减少配置量将公共的配置进行抽象
- 【Leetcode】Merge intervals
- epoll_create函数实现源码分析 http://blog.csdn.net/lmh12506/article/details/7556188
- hdu4300 Clairewd’s message(扩展KMP)
- Android 仿qq聊天界面之一
- ListView的一些使用方式
- No repository found at http://m2eclipse.sonatype.org/sites/m2e
- 背包问题
- sde执行revoke SELECT ANY TABLE from sde导致报ora-29900 运算符连接不存在错误
- 整数奇偶排序
- Epoll实现原理解析 http://blog.csdn.net/wangxiaoqin00007/article/details/14450021
- curl命令
- 宽字符处理函数函数与普通函数对照表
- 第一次