2.将数据展示在一个可滚动的列表视图中
3.每一子项数据的格式都相同
1.定义listView组件,创建列表显示界面
2.构造适配器,关联数据源
3.为ListView设置适配器
1.处理数据并将数据绑定到界面
2.界面与数据之间的桥梁
3.提供数据项的访问及更新
1.ArrayAdapter
2.SimpleAdapter
3.SimpleCursorAdapter
ArrayAdapter最为简单,只能展示一行字。
<?xml version="1.0" encoding="utf-8"?> <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" tools:context="com.example.listview.MainActivity"> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/listView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"/> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="80dp" android:layout_height="80dp" android:id="@+id/imageView" android:src="@mipmap/ic_launcher"/> <TextView android:layout_width="100dp" android:layout_height="40dp" android:text="New Text" android:id="@+id/textView1" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/imageView" android:layout_toEndOf="@+id/imageView"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/textView2" android:layout_below="@+id/textView1" android:layout_toRightOf="@+id/imageView" android:layout_toEndOf="@+id/imageView"/> </RelativeLayout>
package com.example.listview; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class Main2Activity extends AppCompatActivity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); //获取上个页面的intent内容 Intent intent=getIntent(); //根据不同的建名,获取相对应的值 int name=intent.getIntExtra("newname",0); //通过ID寻找textView的位置 tv= (TextView) findViewById(R.id.textView3); //调用name tv.setText(String.valueOf(name)); } }
<?xml version="1.0" encoding="utf-8"?> <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" tools:context="com.example.listview.Main2Activity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/textView3" android:layout_centerVertical="true" android:layout_centerHorizontal="true"/> </RelativeLayout>
调用initView方法
通过ID找到listView的位置
实例化list集合对象,不能直接实例化所以用子类ArrayList实例化
利用for循环循环显示listview列表
创建一个适配器
把适配器放在列表上去
给listView添加短按监视器
给listView添加长按监视器
跳转页面
将对应的值传入跳转页面,newname为list的一个表示
开始跳转
false会出现短按监视器和长按监视器
true会出现长按监视器
package com.example.listview; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { //实例化控件 private ListView listView; private List<Integer> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //调用initView方法 initView(); } private void initView(){ //通过ID找到listView的位置 listView= (ListView) findViewById(R.id.listView); //实例化list集合对象,不能直接实例化所以用子类ArrayList实例化 list=new ArrayList(); //利用for循环循环显示listview列表 for(int x=0; x<100; x++){ list.add(x); } //创建一个适配器 ArrayAdapter adapter=new ArrayAdapter(this,R.layout.listview_main,R.id.textView1,list); //把适配器放在列表上去 listView.setAdapter(adapter); //给listView添加短按监视器 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "点击了第"+list.get(position)+"个条目", Toast.LENGTH_SHORT).show(); } }); //给listView添加长按监视器 listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //跳转页面 Intent intent=new Intent(MainActivity.this,Main2Activity.class); //将对应的值传入跳转页面,newname为list的一个表示 intent.putExtra("newname",list.get(position).toString()); //开始跳转 startActivity(intent); //false会出现短按监视器和长按监视器 //true会出现长按监视器 return true; } }); } }
1万+



被折叠的 条评论
为什么被折叠?



