`
crazysumer
  • 浏览: 49599 次
社区版块
存档分类
最新评论

【安卓笔记】使用ListView的Fragment

 
阅读更多

API LEVEL 11

 

1.使用ListFragment可实现包含Listiew的Fragment

 

2.在Fragment的布局中必须包含id "@android:id/list"(在代码中则是list)的Listview

 

3.只能使用SimpleAdapter或者SimpleCursorAdapter作为适配器

 

4.直接使用ListFragment的setListAdapter()来设置适配器【不要给ListView设置】

 

5.ListView点击事件的监听,重写ListFragment的onListItemClick(ListView l, View v, int position, long id)方法

 

 

1)新建ListFragment的布局fragment1.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Titles"
        />
    
    <ListView 
        android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        ></ListView>

</LinearLayout>

 

 

2)新建Fragment继承自ListFragment,命名为Fragment1。

 

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

/**
 * @描述 在Fragment中要使用ListView,就要用ListFragment
 * */
public class Fragment1 extends ListFragment   {

	private String TAG = Fragment1.class.getName();
	private ListView list ;
	private SimpleAdapter adapter;

	/**
	 * @描述 在onCreateView中加载布局
	 * */
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View view = inflater.inflate(R.layout.fragment1, container,false);
		list = (ListView) view.findViewById(android.R.id.list);
		Log.i(TAG, "--------onCreateView");
		return view;
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		b = savedInstanceState;
		Log.i(TAG, "--------onCreate");
		String[] list = {"Class 1","Class 2","class 3","Class 4","Class 5"};
		adapter = new SimpleAdapter(getActivity(), getData(list), R.layout.item_list, new String[]{"title"}, new int[]{R.id.title});
		setListAdapter(adapter);
		
	}
	
	@Override
	public void onListItemClick(ListView l, View v, int position, long id) {
		super.onListItemClick(l, v, position, id);
		
		System.out.println(l.getChildAt(position));
		HashMap<String, Object> view= (HashMap<String, Object>) l.getItemAtPosition(position);
		System.out.println(view.get("title").toString()+"+++++++++title");

		
		

		Toast.makeText(getActivity(), TAG+l.getItemIdAtPosition(position), Toast.LENGTH_LONG).show();
		System.out.println(v);
		
		System.out.println(position);
		
		
	}
	
	
	

	private List<? extends Map<String, ?>> getData(String[] strs) {
		List<Map<String ,Object>> list = new ArrayList<Map<String,Object>>();
		
		for (int i = 0; i < strs.length; i++) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("title", strs[i]);
			list.add(map);
			
		}
		
		return list;
	}

	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
		Log.i(TAG, "--------onActivityCreated");

	}
	
	@Override
	public void onAttach(Activity activity) {
		super.onAttach(activity);
		Log.i(TAG, "----------onAttach");
	}

}

 

 

3)新建Activity,继承自FragmentActivity,将Fragment添加到Activity中。命名为FragmentsActivity。

 

public class FragmentsActivity extends FragmentActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_fragments);
		Display display = getWindowManager().getDefaultDisplay();
		Fragment1 f1 = new Fragment1();
		FragmentManager manager  = getSupportFragmentManager();
		manager.beginTransaction().add(R.id.fragments, f1).commit();

		
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.fragments, menu);
		return true;
	}

}

 

 

效果图:



 

 

 

 

  • 大小: 82.7 KB
分享到:
评论
2 楼 crazysumer 2014-04-26  
atgoingguoat 写道
R.layout.item_list

没放出来。



应该就是一个TextView而已
1 楼 atgoingguoat 2014-04-21  
R.layout.item_list

没放出来。

相关推荐

    简单笔记本功能

    综上所述,"简单笔记本功能"是一个基础的文本笔记应用,其核心功能围绕创建、编辑和查看笔记,使用ListView组件展示笔记列表。对于开发者来说,实现这样的应用涉及到Android UI设计、数据管理以及事件监听等多个方面...

    Android Training学习笔记——Navigation 参考源码(ListView版)

    这篇“Android Training学习笔记——Navigation 参考源码(ListView版)”深入探讨了如何使用Navigation构建一个基于ListView的导航系统。我们将从以下几个方面来详细讨论这个主题: 1. **Navigation组件简介** ...

    Android基础笔记

    Android 基础笔记 Android 基础笔记是 Android 开发的入门知识点总结,涵盖了 Android 开发的基础知识点,从 Android 发展史到自定义 ContentProvider 的实现。 一、Android 发展史 Android 的发展史可以追溯到 ...

    黑马程序员安卓 笔记代码(包含源码) 第76期

    【标题】"黑马程序员安卓 笔记代码(包含源码) 第76期" 提供的是安卓开发的相关学习资料,其中包含了源码,这通常意味着我们可以深入理解代码的实现细节和设计思路。作为第76期,这可能是一个长期系列教程的一部分...

    Android学习笔记(十九):建立自己的ListView.doc

    在本篇Android学习笔记中,我们将探讨如何建立自己的ListView,即创建一个自定义的ListView子类,以便实现特定的UI样式和功能。这通常涉及到自定义Adapter和布局。 1. **自定义ListView子类** - 首先,我们需要...

    android笔记

    这篇笔记将深入讲解这两个概念以及它们的使用方法。 Fragment是Android 3.0(API级别11)引入的一个重要特性,它是一个可嵌入到Activity中的UI片段。Fragment有自己的生命周期,可以独立于Activity进行操作,但同时...

    Android个人笔记本

    1. **用户界面(UI)设计**:使用XML布局文件来定义屏幕上的组件,如EditText用于输入文本,Button用于触发动作,ListView或RecyclerView用于显示条目列表。设计师需要遵循Material Design指南,确保应用具有良好的...

    Android笔记本APP源码.zip

    3. **Android笔记应用的基本结构** - **MainActivity**: 应用的主要入口,通常负责初始化界面和处理用户交互。 - **NoteActivity/EditorActivity**: 用于创建和编辑笔记的活动,可能包括输入框、编辑器和保存功能...

    安卓一款随堂笔记源码

    你需要熟悉Android的布局管理器(如LinearLayout、RelativeLayout、ConstraintLayout)以及各个UI组件(TextView、EditText、ListView、RecyclerView等)的使用。 5. **Activity与Intent** Activity是Android应用...

    Android ListView下拉刷新 Demo.zip

    在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。ListView的一个常见需求是实现下拉刷新功能,以便用户可以获取最新的数据。本教程将详细讲解如何在Android中实现ListView的下拉刷新功能,主要...

    android仿印象笔记框架建立一个医生创建3种病例的客户端

    android仿印象笔记框架建立一个医生创建3种病例的客户端 viewpager+fragment+自定义的actionbar实先高仿印象笔记的登陆注册界面 用slidemenu 实现左右滑动界面 左界面高仿印象笔记 实现三种病例的创建(文本病例,照片...

    Android笔记之:在ScrollView中嵌套ListView的方法

    一种替代方案是将父ListView的每个Item作为一个简洁的摘要展示,当用户点击Item时,跳转到一个新的Activity或Fragment来显示详细信息和操作。这种方法既保持了良好的界面清晰度,也提供了良好的用户体验。总的来说,...

    android详细笔记

    这份“Android详细笔记”涵盖了从基础到进阶的各种知识点,旨在帮助读者深入理解Android开发技术。 一、Android系统架构 Android系统由五层结构组成:Linux内核、硬件抽象层、系统运行库、应用程序框架以及应用程序...

    补充Android开发笔记

    这部分可能涵盖了更深入的用户界面编程,比如使用Adapter将数据绑定到ListView或RecyclerView,自定义View,动画效果,触摸事件处理,以及如何使用碎片(Fragment)来支持多屏幕适配。UI编程是Android开发中的重要...

    Android笔记【八个基础案例】

    为了自定义列表项的显示样式,可以创建一个新的布局文件并传递给ArrayAdapter的构造函数,而不是使用系统默认的`android.R.layout.simple_list_item_1`。 总结: 这两个基础案例展示了Android应用开发中的关键概念...

    Android代码-Android_Learning_Notes

    这是我的安卓学习笔记。 开始时间:2016-9-11 计划:一个半月 文章目录: 基础知识 1、Android01--搭建Android开发环境 2、Android02--认识Activity 3、Android03--Context和Application 4、Android04--Android服务 ...

    Android学习笔记总结初学者必看.rar_Android java_android

    12. **Android性能优化**:包括内存优化、UI流畅性、电量管理等,比如使用WeakReference防止内存泄漏,使用ViewHolder模式提高ListView性能。 13. **Gradle构建系统**:Android项目通常使用Gradle进行构建,学会...

    安卓基础笔记

    【安卓基础笔记】是针对初学者的一份详细教程,旨在帮助读者掌握Android应用开发的基本概念、原理和常用控件。这份笔记是进入Android高级开发前的必备读物,旨在为学习者打下坚实的理论和实践基础。 在Android开发...

    android 初学者学习笔记

    【Android 初学者学习笔记】 Android 是一个基于Linux内核的开源移动操作系统,主要用于智能手机和平板电脑,由Google公司领导的开放手机联盟开发并维护。本篇笔记将为初学者提供一些关键的学习点,帮助快速掌握...

Global site tag (gtag.js) - Google Analytics