`
风雨静婷
  • 浏览: 5766 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

ListView和SlidingDrawer

阅读更多
XML文件

main.xml文件
两个控件按钮btnListView和btnSlidingDrawer
<Button
                android:id="@+id/listView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/listviewStr" />

<Button
                android:id="@+id/btnSlipdingdrawer"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/slidingDrawerStr" />


mylistview.xml文件

一个控件ListView
<?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" >

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>  
   
</LinearLayout>



mylistview_item.xml文件

两个控制:一个ImageView和一个TextView

<?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="horizontal" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/a" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>


myslidingdrawer.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" >

    <SlidingDrawer
        android:id="@+id/slidingDrawer1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:content="@+id/content"
        android:handle="@+id/handle" >

        <Button
            android:id="@+id/handle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Handle" />

        <LinearLayout
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            <ListView
                android:id="@+id/slidingDrawerListView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1">
            </ListView>
        </LinearLayout>
    </SlidingDrawer>

</LinearLayout>


AndroidMainfest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.newer.p0202"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".P0202Activity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="MyListView"></activity>
        <activity android:name="MySlidingDrawer"></activity>
        <activity android:name="MyViewFlipper"></activity>
    </application>

</manifest>

java代码

P0202Activity类
主页面继承Activity实现OnClickListenere

public class P0202Activity extends Activity implements OnClickListener{
     public void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstenceState);
          setContentView(R.layout.main);

          //启动ListView Activity按钮
          Button btnListView = (Button)findViewById(R.id.listView);
          btnListView.setOnClickListener(this);

         
     }
     public void onClick(View v){
          switch(v.getId()){
          case R.id.listView:
               Intent intent = new Intent(this,MyListView.class);
               startActivity(intent);
               break;
          case R.id.btnSlidingdrawer:
               Intent intent2 = new Intent(this,MySlidingDrawer.class);
               startActivity(intent2);
               break;
          default:
               break;
          }
     }
}



MyListView类继承Activity

public class MyListView extends Activity{
     protected void onCreate(Bundle savedInstanceState)
         super.onCreate(savedInstanceState);
         setContentView(R.layout.mylistview);

         //模拟数据
         List<DataBean> dataList = new ArrayList<DataBean>();
         for(int idx=0;idx<20;idx++){
             //具体的每一条数据
             DataBean dataBean = new DataBean();
             dataBean.imageId = R.drawable.a;
             dataBean.imageDescription = "具体的说明"+idx;
             dataList.add(dataBean);
         }

         MyListViewAdapter myListViewAdapter = new MyListViewAdapter(dataList,this);
         //得到listview控件
         ListView listView = (ListView)findViewById(R.id.listView1);
         //设置适配器,让listview根据适配器来显示数据
         listView.setAdapter(myListViewAdapter);        
     }
}


创建一个类DataBean

public class DataBean{
    public int imageId;
    public String imageDescription;
}



创建一个类MyHandler

public class MyHandler{
    public ImageView imageView;
    public TextView textView;
}



适配器类:
MyListViewAdapter类继承BaseAdapter

public class MyListViewAdapter extends BaseAdapterP{
    public int getCount(){
        return dataList.size();
    }
    public Object getItem(int position){
        return null;
    }
    public long getItemId(int position){
        return 0;
    }
    public View getView(int position, View convertView, ViewGroup parent){
        //三种方式
        //LayoutInflater.from(context);
        //(LinearLayout)activity.getlayoutInflater();
        //LayoutInflater layoutInflater = (LayoutInflater)myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        //样式膨胀(要从layout资源中动态的读取一个XML文档)
        //效率差的方式
        //LayoutInflater layoutInflater = (LayoutInflater)myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        //LinearLayout lineanLayout = (LinearLayout)layoutInflater.inflater(R.layout.mylistview_item,null);
        //得到当前线性布局的两个控件
        //ImageView imageView = (ImageView)lineanLayout.findViewById(R.id.imageView1);
        //TextView textView = (TextView)lineanLayout.findViewById(R.id.textView1);
        //imageView.setImageResource(dataList.get(position).imageId);
        //textView.setText(dataList.get(position).imageDescription);
        //return lineanLayout;


        //效率高的方式
        MyHandler myHandler = new MyHandler();
        if(null == convertView){//刚开始第一次convertView里面是没有对象
            LayoutInflater layoutInflater = (LayoutInflater)myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            LinearLayout lineanLayout = (LinearLayout)layoutInflater.inflater(R.layout.mylistview_item,null);
            //得到当前线性布局的两个控件
            ImageView imageView = (ImageView)lineanLayout.findViewById(R.id.imageView1);
            TextView textView = (TextView)lineanLayout.findViewById(R.id.textView1);
            myHandler.imageView = imageView;
            myHandler.textView = textView;
       
            convertView = lineanLayout;

        }
        myHandler = (MyHandler)convertView.getTag();
        myHandler.imageView.setImageResoure(dataList.get(position).imageId);
        myHandler.textView.setText(dataList.get(position).imageDescription);
        return convertView;
    }
}





MySlidingDrawer类继承Activity

public class MySlidingDrawer extends Activity{
     protected void onCreate(Bundler savedInstanceState){
          super.onCreate(savedInstanceState);
          setContentView(R.layout.myslidingdrawer);

          //模拟数据
          List<DataBean> dataList = new ArrayList<DataBean>();
          for(int idx=0;idx<20;idx++){
              //具体的每一条数据
              DataBean dataBean = new DataBean();
              dataBean.imageId = R.drawable.a;
              dataBean.imageDescription = "具体的说明"+idx;
              dataList.add(dataBean);
          }
          MyListViewAdapter myListViewAdapter = new MyListViewAdapter(dataList,this);
          ListView listView = (ListView)findViewById(R.id.slidingDrawerListView);
          listView.setAdapter(myListViewAdapter);
     }
}






















0
0
分享到:
评论
1 楼 asource 2012-05-07  
只可惜没有截图

相关推荐

    android 带分类的listview

    5. **布局设计**: 在XML布局文件中,将ListView和SlidingDrawer(或NavigationView)并排放置。注意调整各自的宽高和相对位置,确保用户体验良好。 6. **样式定制**: 可以通过修改默认的样式文件(如styles.xml)或...

    Android-SlidingDrawer一个Android滑动抽屉支持ListViewScrollViewRecyclerView

    本文将深入探讨Android的SlidingDrawer及其在不同场景下的应用,包括与ListView、ScrollView和RecyclerView的集成。 首先,SlidingDrawer是一个原生Android控件,它提供了上滑开启、下滑关闭的功能,并具有自动回弹...

    SlidingDrawer(抽屉)

    在给定的示例中,SlidingDrawer被用来展示一个包含手机上已安装应用的GridView,这对于初学者来说是一个很好的实践案例,因为它结合了多个关键的Android组件和概念。 首先,我们来深入理解SlidingDrawer的使用方法...

    SlidingDrawer抽屉效果可以默认显示一部分。

    抽屉通常由一个可滑动的ViewGroup(如HorizontalScrollView或ListView)和一个触发器(如ImageView或Button)组成。触发器用来启动抽屉的滑动动画。 src目录包含Java源代码,其中的Activity类是实现抽屉效果的关键...

    Android自定义A_Z字母排序ListView,悬停Listview ,字母列表排序

    本项目涉及的核心知识点是“Android自定义A_Z字母排序ListView”,以及实现“悬停Listview”和“字母列表索引”。 首先,我们要理解ListView的基础工作原理。ListView通过Adapter来填充数据,并通过ViewHolder模式...

    集侧滑、fragment、viewpager、listview横向滑动于一体的demo

    在Android中,实现这一效果通常使用`SlidingDrawer`(已被弃用)或者`NavigationView`,但现在更流行的是自定义布局和手势检测,比如使用`GestureDetector`和`Scroller`来实现更为灵活的侧滑效果。 其次,Fragment...

    ListView的字母排序和过滤搜索功能第三种效果

    在这个特定的案例中,我们关注的是ListView的两种增强功能:字母排序(Alphabetical Indexing)和过滤搜索(Filter Search)。这两种特性使得用户能够更方便地浏览和查找列表中的项目。 首先,让我们详细了解一下...

    share侧滑屏幕

    【描述】"超炫的屏幕滑动,和listview下拉刷新功能"提到了两个关键的技术点:屏幕滑动效果和ListView的下拉刷新。屏幕滑动效果是UI设计的一部分,通常通过手势识别和动画处理来实现,旨在提供流畅且吸引人的用户体验...

    android抽屉

    抽屉效果有两个主要实现方式:`DrawerLayout`和`SlidingDrawer`。 1. **DrawerLayout**: `DrawerLayout`是Android SDK中的一个布局组件,它主要用于实现类似Google Play、Google Maps那样的侧滑菜单。`...

    SlidingDrawe组件测试

    SlidingDrawer由两部分组成:把手(handle)和内容区(content)。把手是用户触摸并拖动以打开或关闭抽屉的部分,内容区则包含要显示的菜单或列表。在XML布局文件中,SlidingDrawer需要设置这两个子视图,并指定它们...

    Android开发之DrawerLayout实现抽屉效果

    1. DrawerLayout 的第一个子元素必须是默认内容,即抽屉没有打开时显示的布局(如 FrameLayout),后面紧跟的子元素是抽屉内容,即抽屉布局(如 ListView)。 2. 抽屉菜单的摆放和布局通过 android:layout_gravity ...

    androidMP3播放器

    private ListView mListView; private SlidingDrawer slidingDrawer ; // 定义SlidingDrawer private ImageView handle; //歌曲数据库 Cursor cur; // 声明改变TextView内容的线程 TimeThread th; // 控制...

    Android 抽屉实现

    `SlidingDrawer`是Android早期版本中的一个自定义视图,它可以创建一个可滑动的抽屉,包含顶部和底部的柄以及内容区域。 **SlidingDrawer的使用步骤:** 1. **在布局XML中添加SlidingDrawer:** 在你的布局文件中...

    Android 抽屉效果的导航菜单

    在Android中,有两种主要的方式来实现抽屉效果,即使用`SlidingDrawer`(已废弃)和`DrawerLayout`。 1. **SlidingDrawer**: - `SlidingDrawer`是早期Android版本中用来实现抽屉效果的类,它提供了一个可上下或...

    sd卡加抽屉

    7. **带列表的抽屉**:在抽屉布局中嵌入ListView,与上述步骤类似,但需注意抽屉打开和关闭时的动画效果,这可以通过调整`DrawerLayout`的属性来实现。 通过以上步骤,我们可以创建一个从SD卡读取.txt文件并显示在...

    Android自定义控件案例汇总2(自定义开关、下拉刷新、侧滑菜单)

    自定义侧滑菜单可以基于SlidingDrawer或者使用GestureDetector来检测用户的滑动手势。在实现过程中,我们需要创建一个可以滑动的视图容器,监听滑动事件,然后根据滑动的距离和方向来控制菜单的显示和隐藏。 总结...

    Android从上到下抽屉式效果

    ListView navDrawer = (ListView) findViewById(R.id.navdrawer); // 设置菜单项 navDrawer.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; ...

    安卓上拉刷新和侧滑面板小demo

    "安卓上拉刷新和侧滑面板小demo" 是一个针对安卓平台的示例项目,它涵盖了两个关键功能:上拉刷新(Pull-to-Refresh)和侧滑面板(Swipeable Drawer)。这两个特性在现代移动应用中非常常见,用于提供更流畅和互动的...

    Android 城市选择demo含左边快速定位数据库

    在Android中,可以使用SlidingDrawer或NavigationView实现侧滑菜单效果;而搜索栏则通常结合EditText和AutoCompleteTextView来提供自动补全功能,用户输入部分城市名时,系统会自动列出匹配的结果。 4. **适配...

    menu侧滑效果

    在`SlidingDrawerExample-master`中,可能包含了如何配置SlidingDrawer,设置手柄和内容视图,以及处理触摸事件的代码示例。 2. **第三方库**:随着SlidingDrawer的弃用,开发者开始转向第三方库,如`androidx....

Global site tag (gtag.js) - Google Analytics