`
wu.sheng
  • 浏览: 66836 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android ViewList代码实现展现(不使用任何资源文件)

阅读更多

     上一章,我实验了关于UI的基本效果,虽然还有很多控件需要二次开发和实验,不过至少说明是可以使用的。有些空间用代码生成确实十分的麻烦。比如,我花了一个晚上才研究明白,ViewList怎么能够用纯代码显示页面。

     首先,我们需要声明ListView控件,设置布局和数据源

            ListView lv = new ListView(context);
            lv.setId(12347);
            lv.setDrawSelectorOnTop(false);
            lv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 200));
            lv.setBackgroundColor(Color.BLACK);

            File f = new File("/");
            File[] files = f.listFiles();
            ArrayList<HashMap<String, String>> fileInfos = new ArrayList<HashMap<String, String>>();
            for (File file : files) {
                HashMap<String, String> fileInfo = new HashMap<String, String>();
                fileInfo.put("FILE_NAME", file.getName());
                fileInfos.add(fileInfo);
            }

            MyAdapter adapter = new MyAdapter(context, fileInfos,// 数据来源
                    new String[] { "FILE_NAME" });

            lv.setAdapter(adapter);
            layout.addView(lv);

     需要注意的是LayoutParams和MyAdapter 两个地方

     LayoutParams:当用eclipse开发自动生成时,你会发现,有好多同名类,一定要选择正确的,这里需要选择的是:android.widget.LinearLayout,因为ListView 所属容器是LinearLayout类型。

     MyAdapter:则是一处需要自行开发的了,虽然Android库中带了好多已实现的Adapter,但是我测试的好多,实现方式都是从资源文件中读取布局信息,这样让之前的努力都白费了,随意这是,只好自己实现了。

     由于是测试,方法并没有全部正常的实现,也没有异常处理,仅作为示例使用:

public class MyAdapter extends BaseAdapter {
    Context context;

    ArrayList<HashMap<String, String>> data;

    String[] from;

    public MyAdapter(Context context, ArrayList<HashMap<String, String>> data, String[] from) {
        this.context = context;
        this.data = data;
        this.from = from;
    }

    public int getCount() {
        return data.size();
    }

    public Object getItem(int position) {
        return data.get(position);
    }

    public long getItemId(int position) {
        return 0;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        TableLayout lay = null;
        if (null == convertView) {
            TableRow tr = new TableRow(context);
            TextView tv_l = new TextView(context);
            TextView tv_l2 = new TextView(context);
            tv_l.setText("* ");
            tv_l2.setText(data.get(position).get(from[0]));
            tv_l2.setGravity(Gravity.LEFT);
            tv_l2.setLayoutParams(new TableRow.LayoutParams(LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT));
            tr.addView(tv_l);
            tr.addView(tv_l2, new TableRow.LayoutParams(LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT));
            lay = new TableLayout(context);
            lay.addView(tr);
        } else {
            lay = (TableLayout) convertView;
        }
        lay.setColumnStretchable(1, true);
        return lay;

    }
}

 

      这里自动构建了每一行是一个TableLayout,并包含一个TableRow,TableRow 中才是需要显示的内容,这样可以方便以后的各种布局。

      展现效果:

     

      另外提一点的是:Android由于实现了一部分JAVA类库,所以文件访问和Java程序是基本类似的,虽然还没有测试细节的API,但是从读取根目录来看,是完全正常的。

1
0
分享到:
评论

相关推荐

    android文件管理代码

    android系统并不自带文件管理器,但是很多情况下,我们有诸如从SD中打开文件的需要,就必须借助三方开发的资源管理器,常用的有AndExplorer等。这种情况下发布后,用户还需要安装依赖的软件,非常麻烦。下面介绍在...

    Android中文件选择器的实现(代码)

    本文将深入探讨如何在Android应用中实现一个文件选择器,并提供相关的代码示例。 首先,理解Android的文件系统至关重要。Android使用Linux内核,因此其文件系统遵循典型的Linux目录结构。用户可以通过`Environment`...

    Android应用自动更新代码实现

    本文将详细探讨如何在Android应用程序中实现自动检查并下载新版本的代码逻辑,以达到无缝更新的效果。 首先,我们需要一个服务(Service)来执行后台的更新检查。这个服务会在合适的时机(例如应用启动时或网络连接...

    android 经典代码例子

    在Android开发领域,经典代码例子是开发者学习和提升技能的重要资源。这些例子涵盖了各种关键功能和组件的实现,有助于深入理解Android应用的工作原理。在这个压缩包中,我们可能找到了多个有关Android编程的示例...

    Android Studio代码高亮插件

    - **Android Drawable Importer**:虽然非代码高亮插件,但能提升Android开发效率,自动导入和优化图片资源。 4. **安装与配置插件**: - Android Studio允许通过内置插件市场安装,`File` -&gt; `Settings` -&gt; `...

    android jni使用libzip读取压缩文件

    本示例着重讲解如何使用JNI结合libzip库来读取压缩文件,同时对比了通过NDK自带的API接口读取assets资源文件的方法。 libzip是一个开源的C库,用于处理ZIP档案,包括读取、创建、更新和提取文件。在Android环境中,...

    Android下AES加密算法的JNI实现(包含SO文件)

    本资源提供了一个具体的实例,即在Android环境下使用JNI实现AES(Advanced Encryption Standard)加密算法,并包含了编译生成的SO(Shared Object)库文件,方便开发者直接集成到项目中。 AES是一种广泛使用的对称...

    UPnP Android代码实现

    1. **引入库**:Android开发中,可以使用开源库如libUPnPLib或KryoNet来简化UPnP的实现。这些库封装了底层的HTTP和SOAP交互,使开发者能更专注于业务逻辑。 2. **设备发现**:创建一个线程或异步任务来周期性地发送...

    Android读取并显示word文件的代码例子

    这篇教程将详细介绍如何在Android应用中实现读取并显示Word(doc和docx)文件的代码实例。 首先,为了在Android应用中显示Word文档,我们需要一个第三方库来处理Word文件解析。在Java或Kotlin中,常用的库有Apache ...

    android 播放局域网共享多媒体文件

    要实现这一功能,开发者需要理解Android多媒体框架、网络编程以及文件系统操作等多个方面的知识。以下将详细讲解如何在Android应用中实现这一功能。 首先,了解Android多媒体框架至关重要。Android提供了一个强大的...

    nfcard for Android源代码

    【标题】"nfcard for Android源代码"是一个专注于Android平台的开源项目,旨在实现读取各地NFC(Near Field Communication)公交卡的功能。这个程序允许用户通过具备NFC功能的Android设备来读取并可能使用公交卡信息...

    Android实现下载APK文件并自动执行安装

    在Android平台上,实现从网络下载APK文件并自动执行安装是一个常见的需求,尤其在更新应用或者分发非市场应用时。这个过程涉及到多个步骤,包括网络请求、文件下载、权限处理以及安全检查。下面我们将详细讲解如何...

    AndroidStudio 编译C/C++文件生成SO文件

    在Android开发中,有时我们需要利用C或C++的性能优势,这时就需要用到Android Studio的NDK(Native Development Kit)来编译C/C++代码,生成SO(Shared Object)动态链接库文件。这篇博客详细介绍了如何在Android ...

    android 文件上传源代码

    "android 文件上传源代码"这个资源提供了一种实现这一功能的方式。在Android应用开发中,文件上传通常涉及到网络编程,特别是HTTP协议的使用,以及与服务器端接口的交互。 首先,我们要理解Android中的文件上传基础...

    Android实现圆形、圆角、椭圆自定义ImageView(源代码)

    Android实现圆形、圆角、椭圆自定义ImageView,使用Xfermode渲染模式渲染图形实现的,代码有注释,读起来通俗易懂,有需要的可以下载哈 Android实现圆形、圆角、椭圆自定义ImageView,使用Xfermode渲染模式渲染图形...

    Android简单文件浏览器源代码

    这个“Android简单文件浏览器源代码”提供了一个基本的实现,包含了浏览、打开、复制、删除和移动文件的功能。以下是这个源代码中涉及的关键知识点及详细解释: 1. **Android组件和布局**: - `Activity`:Android...

    Android文件管理器源码

    这里我们讨论的“Android文件管理器源码”是一个开发资源,可以帮助开发者了解如何在Android平台上构建这样的应用。这个源码可能是某个开源项目,提供了文件管理功能的实现细节,对于学习Android应用开发,尤其是...

    Android 轻松实现语音识别的完整代码

    ### Android轻松实现语音识别的完整代码 #### 一、引言 随着移动互联网技术的发展,语音识别成为Android应用开发中的一个重要功能。通过语音识别技术,用户可以方便地通过语音指令来控制应用程序,大大提升了用户...

    Android文件上传.rar

    本文将详细解析如何在Android系统中实现文件上传,主要围绕"Android文件上传"这一主题展开,结合提供的博客链接以及压缩包内的示例代码(test和struts2fileupload)进行说明。 首先,理解文件上传的基本流程至关...

    文件复制及进度条 android 文件复制 进度条 progressdialog

    在Android中,你可以使用Java的I/O流来实现文件复制。以下是一个基本的文件复制方法: ```java public static void copyFile(File sourceFile, File destFile) { if (!destFile.exists()) { try { destFile....

Global site tag (gtag.js) - Google Analytics