【实验】ListView、bundle的使用
来源:互联网 发布:电国网络电视直播台 编辑:程序博客网 时间:2024/05/16 17:01
主要内容:
从跳转到另一个界面,并且可以返回。
图一 图二
xml:
item:
<LinearLayout 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:orientation="horizontal" tools:context=".MainActivity" > <ImageView android:id="@+id/image" android:layout_width="50dp" android:layout_height="50dp"/> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content"/></LinearLayout>
activity_main:
<LinearLayout 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:orientation="vertical" tools:context=".MainActivity" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content"> </ListView></LinearLayout>
activity_main2:
<LinearLayout 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:orientation="vertical" tools:context=".MainActivity" > <TextView android:id="@+id/tv" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="back"/></LinearLayout>
第一种方法是使用SimpleAdapter:
package com.example.lab3;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity {ListView list;private List<Map<String,Object>> mDataList = new ArrayList<Map<String,Object>>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();setData(); //为mDataList添加元素//为ListView添加元素的适配器 SimpleAdapter listItemAdapter = new SimpleAdapter(this, mDataList, R.layout.item, new String[]{"name","image"}, new int[]{R.id.name,R.id.image}); //ListView关联适配器 list.setAdapter(listItemAdapter); //定义适配器的各个点击事件 list.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {Bundle bundle = new Bundle();String fruitName ="";switch(arg2){case 0:fruitName = "apple";//bundle.putString("fruit", "apple");break; case 1:fruitName = "banana";//bundle.putString("fruit", "banana");//Toast.makeText(MainActivity.this, "1", Toast.LENGTH_LONG).show();break;case 2:fruitName = "cherry";//bundle.putString("fruit", "cherry");//Toast.makeText(MainActivity.this, "2", Toast.LENGTH_LONG).show();break;case 3:fruitName = "coco";break;case 4:fruitName = "kiwi";break;case 5:fruitName = "orange";break;case 6:fruitName = "pear";break;case 7:fruitName = "strawberry";break;case 8:fruitName = "watermelon";break;default:break;}bundle.putString("fruit", fruitName);Intent intent = new Intent(MainActivity.this, MainActivity2.class);intent.putExtras(bundle);startActivity(intent);}});}public void init(){list = (ListView)findViewById(R.id.list);}public void setData() { Map<String,Object> map = new HashMap<String,Object>(); map.put("name", "Apple"); map.put("image", R.drawable.apple); mDataList.add(map); map = new HashMap<String,Object>(); map.put("name", "Banana"); map.put("image", R.drawable.banana); mDataList.add(map); map = new HashMap<String,Object>(); map.put("name", "Cherry"); map.put("image", R.drawable.cherry); mDataList.add(map); map = new HashMap<String,Object>(); map.put("name", "Coco"); map.put("image", R.drawable.coco); mDataList.add(map); map = new HashMap<String,Object>(); map.put("name", "Kiwi"); map.put("image", R.drawable.kiwi); mDataList.add(map); map = new HashMap<String,Object>(); map.put("name", "Orange"); map.put("image", R.drawable.orange); mDataList.add(map); map = new HashMap<String,Object>(); map.put("name", "Pear"); map.put("image", R.drawable.pear); mDataList.add(map); map = new HashMap<String,Object>(); map.put("name", "Strawberry"); map.put("image", R.drawable.strawberry); mDataList.add(map); map = new HashMap<String,Object>(); map.put("name", "Watermelon"); map.put("image", R.drawable.watermelon); mDataList.add(map); }}/* * * 1.init()位置 * 2.break的使用; * * */
然后跳转到MainActivity2:
package com.example.lab3;import android.app.Activity;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity2 extends Activity{ TextView tv;Button btn;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); init(); Bundle bundle = new Bundle(); bundle = this.getIntent().getExtras(); String fruit = bundle.getString("fruit"); //获取标签为fruit的内容 tv.setText("I love " + fruit + "!!!"); tv.setTextColor(Color.RED); //设置字体颜色 btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub//Intent intent_back = new Intent(MainActivity2.this, MainActivity.class);//startActivity(intent_back);finish(); //finish()可以避免了上述方法中新建一个activity的冗赘}}); }public void init(){tv = (TextView)findViewById(R.id.tv);btn = (Button)findViewById(R.id.btn);}}
或者是自定义一个FruitAdapter方法。
首先是Fruit一个类的定义:
/* * 定义一个Fruit类,封装name和image */package com.example.lab3;public class Fruit {private String name;private int imageId;public Fruit(String name,int imageId){this.name = name;this.imageId = imageId;}public String getName(){return name;}public int getImageId(){return imageId;}}
然后自定义适配器:
/* * 自定义一个适配器 */package com.example.lab3;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.TextView;public class FruitAdapter extends ArrayAdapter<Fruit> {private int resourceId;public FruitAdapter(Context context, int textViewResourceId,List<Fruit> fruits) {super(context, textViewResourceId, fruits);// TODO Auto-generated constructor stub resourceId = textViewResourceId;}@Overridepublic View getView(int position,View convertView,ViewGroup parent){Fruit fruit = getItem(position);View view = LayoutInflater.from(this.getContext()).inflate(resourceId,null);ImageView fruitImage = (ImageView)view.findViewById(R.id.image);TextView fruitName = (TextView)view.findViewById(R.id.name);fruitImage.setImageResource(fruit.getImageId());fruitName.setText(fruit.getName());return view;}}
最后是MainActivity3:
package com.example.lab3;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemLongClickListener;import android.widget.ListView;public class MainActivity3 extends Activity {private List<Fruit> fruitList = new ArrayList<Fruit>();ListView list;FruitAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);fruitList.add(new Fruit("apple",R.drawable.apple));fruitList.add(new Fruit("banana",R.drawable.banana));fruitList.add(new Fruit("cherry",R.drawable.cherry));fruitList.add(new Fruit("coco",R.drawable.coco));fruitList.add(new Fruit("kiwi",R.drawable.kiwi));fruitList.add(new Fruit("orange",R.drawable.orange));fruitList.add(new Fruit("pear",R.drawable.pear));fruitList.add(new Fruit("strawberry",R.drawable.strawberry));fruitList.add(new Fruit("watermelon",R.drawable.watermelon));adapter = new FruitAdapter(MainActivity3.this, R.layout.item, fruitList);list = (ListView)findViewById(R.id.list);//ListView关联适配器 list.setAdapter(adapter);list.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stub Bundle bundle = new Bundle();String fruitName ="";switch(arg2){case 0:fruitName = "apple";//bundle.putString("fruit", "apple");break; case 1:fruitName = "banana";//bundle.putString("fruit", "banana");//Toast.makeText(MainActivity.this, "1", Toast.LENGTH_LONG).show();break;case 2:fruitName = "cherry";//bundle.putString("fruit", "cherry");//Toast.makeText(MainActivity.this, "2", Toast.LENGTH_LONG).show();break;case 3:fruitName = "coco";break;case 4:fruitName = "kiwi";break;case 5:fruitName = "orange";break;case 6:fruitName = "pear";break;case 7:fruitName = "strawberry";break;case 8:fruitName = "watermelon";break;default:break;}bundle.putString("fruit", fruitName);Intent intent = new Intent(MainActivity3.this, MainActivity2.class);intent.putExtras(bundle);startActivity(intent);}});list.setOnItemLongClickListener(new OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {// TODO Auto-generated method stubfruitList.remove(arg2);list.setAdapter(adapter);return false;}});}}
注:两种方法共用了MainActivity2的界面,以后还是第二种方法比较常见。
0 0
- 【实验】ListView、bundle的使用
- 暑期实验4__Intent、Bundle的使用以及ListView的应用
- Android Studio:Intent、Bundle、RecyclerView、ListView的使用
- ios Bundle的使用
- Bundle对象的使用
- Bundle对象的使用
- android Bundle的使用
- 安卓中bundle的使用
- Bundle message 的使用
- bundle对象的使用
- Bundle的使用
- Bundle对象的使用
- Bundle的使用小结
- Bundle 的使用
- Android入门——Intent、Bundle的使用和ListView的应用
- Intnet Bundle以及ListView的学习
- Android Bundle的简单使用
- Android开发--bundle的使用
- 借书方案知多少
- MySQL的btree索引和hash索引的区别
- JAVA菜鸟入门 (19) inner calss: static v.s. non-static在main中被实例化时的区别
- nginx 模块的加载与初始化
- ArrayStack成员和各个方法实现
- 【实验】ListView、bundle的使用
- linux 系统常用命令
- Linux 下bin格式软件的安装与卸载
- CocoaPods的安装和使用
- node 使用get和post向后台请求数据的使用方式对比
- 文章标题
- json 数据 添加 删除 排序
- 安装和使用CocoaPods
- CSS基础学习二:如何创建 CSS