`
wu.sheng
  • 浏览: 67028 次
  • 性别: 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简单的画图板实现代码

    这个"android简单的画图板实现代码"就是一个适合初学者的示例项目,旨在帮助开发者了解如何在Android环境中实现画图功能。我们将深入探讨这个项目中的关键知识点。 首先,我们需要了解Android图形绘制的基础。在...

    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 jni使用curl进行http请求和文件下载

    通过以上步骤,你可以在Android应用中使用JNI和libcurl实现HTTP请求和文件下载。这种方式可以利用C/C++的性能优势,同时避免了在Java层直接操作网络请求可能导致的线程安全问题。在实际项目中,你还可以根据需求扩展...

    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文件管理器源码”是一个开发资源,可以帮助开发者了解如何在Android平台上构建这样的应用。这个源码可能是某个开源项目,提供了文件管理功能的实现细节,对于学习Android应用开发,尤其是...

    Android简单文件浏览器源代码

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

    android应用后台安装,静默安装的代码实现方法

    本文将详细讲解如何在Android平台上实现这一功能,包括代码实现和相关注意事项。 首先,静默安装的基本原理是利用Android系统的`PackageInstaller`接口,这个接口允许应用以非交互方式安装APK文件。以下是一段简单...

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

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

    Android纯代码实现余额宝九宫格解锁

    这个项目就是基于Eclipse这个古老的Android开发工具实现的,而不是使用现在更主流的Android Studio。尽管如此,理解并实现这样一个功能对于Android开发者来说依然非常有价值,因为它涉及到自定义视图、触摸事件处理...

Global site tag (gtag.js) - Google Analytics