`

android 创建动态View

阅读更多
dynamic_view.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <LinearLayout
                android:id="@+id/ll_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
            </LinearLayout>

            <Button
                android:id="@+id/btn_click"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/ll_layout"
                android:layout_marginTop="10dp"
                android:text="添加" />
        </LinearLayout>
    </ScrollView>

</LinearLayout>



Activity:

package com.example.jsapp;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

public class DynamicActivity extends Activity {

private LinearLayout llLayout;
private Button btnClick;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dynamic_view);

setView();
}

private void setView() {

llLayout = (LinearLayout) findViewById(R.id.ll_layout);
btnClick = (Button) findViewById(R.id.btn_click);
llLayout.setOrientation(LinearLayout.HORIZONTAL);
btnClick.setOnClickListener(new OnClickListener() {
int count = 0;
@Override
public void onClick(View v) {
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
//第一个参数为xml文件中view的id,第二个参数为此view的父组件,可以为null,android会自动寻找它是否拥有父组件 
View view = inflater.inflate(R.layout.item, null);
TextView tvCaiLiao = (TextView) view.findViewById(R.id.tv_cai_liao);
TextView tvShuLiang = (TextView) view.findViewById(R.id.tv_shu_liang);

tvCaiLiao.setText("芹菜" + count);
tvShuLiang.setText("50g" + count);
llLayout.setOrientation(LinearLayout.VERTICAL);
llLayout.addView(view);
count++;
}
});
}

}
分享到:
评论

相关推荐

    android中动态更改View背景

    在Android开发中,动态地更改View的背景是一个常见的需求,特别是在实现应用主题切换或夜间模式功能时。这个过程涉及到对Android UI组件的理解、资源管理以及编程技巧。下面将详细讲解如何在Android应用中实现动态...

    view android 切换动态增加

    在动态添加View时,可以使用它来创建View实例,代码如下: ```java LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout....

    BGAFlowLayout-Android动态添加View.zip

    【标题】"BGAFlowLayout-Android动态添加View.zip" 是一个关于Android开发的项目压缩包,其中包含了BGAFlowLayout的实现。BGAFlowLayout是一个自定义的布局管理器,专为在Android应用中动态添加和展示View而设计。它...

    Android 线程+View的使用

    在Android开发中,线程和View的交互是十分常见的需求,因为Android的UI操作必须在主线程中进行,而耗时的操作(如网络请求、大数据处理等)则应该放在子线程中。本实例主要探讨如何在子线程中更新View,通过两种方式...

    Android 自定义View视图

    在Android应用开发中,自定义View视图是一个重要的技术,它允许开发者根据特定需求创建独一无二的用户界面元素。本文将深入探讨如何通过继承View类来实现一个自定义的罗盘界面,以帮助开发者理解自定义视图的工作...

    android开发随声音大小变化的自定义view

    在Android开发中,创建一个能够随声音大小变化的自定义View是一种常见的需求,尤其是在音乐播放器或者音频相关的应用中。这个自定义View可以是长方形或圆柱形,旨在模仿音频波形或音量指示器的效果。下面我们将深入...

    在android里面通过view画线

    本篇文章将详细讲解如何在Android的View中实现画线功能,以此来创建一个简单的画线练习作品。 首先,我们需要创建一个新的自定义View类,继承自View或它的子类,如LinearLayout、RelativeLayout等。在这里,我们...

    Android View动态热更新

    Android View动态热更新的核心在于将应用的部分功能模块化,比如一个Activity或者Fragment,然后在运行时通过动态加载这些模块来实现更新。这样做的好处是开发者可以快速修复UI上的bug,或者根据用户反馈及时调整...

    android view的旋转

    在Android开发中,View的旋转是一项常见的操作,用于实现各种动态效果或用户交互。本文将深入探讨Android View的旋转机制,包括源码分析、旋转方式以及如何在实际应用中实现。 首先,Android中的View旋转主要通过`...

    android 自定义view比较综合的例子

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。这个“android 自定义view比较综合的例子”显然涵盖了多个高级话题,旨在帮助有一定基础的开发者提升自定义...

    Android自定义view实现水印效果

    在Android开发中,自定义View是一种常见的需求,用于实现特定的视觉效果或功能。本教程将探讨如何通过自定义View来实现水印效果,让应用能够在屏幕上动态地展示自定义的文字水印。水印通常用于保护版权或者增加信息...

    Android使用TableLayout动态布局实例

    `TableLayout`是Android提供的一种用于创建表格样式的布局,尤其适合展示数据或者组织组件。本篇文章将深入探讨如何使用`TableLayout`进行动态布局,结合实例来理解其用法。 `TableLayout`是`LinearLayout`的扩展,...

    android获取根View的方法

    LayoutInflater是Android系统用来解析XML布局文件的工具,也可以用来动态添加视图。我们可以通过它来获取根View: ```java LayoutInflater inflater = LayoutInflater.from(this); View rootLayout = inflater....

    Android 动态生成多个控件并实现点击

    在Android开发中,有时我们需要根据特定需求动态地创建和管理UI元素,比如在用户交互时按需生成按钮、文本输入框等控件。这个过程涉及到Android的布局管理、控件的实例化、事件监听以及视图层次结构的构建。下面我们...

    Android应用:动态创建按钮,放在现有布局中

    在Android开发中,动态创建UI元素是常见的需求,特别是在需要根据数据或运行时条件自定义界面的情况下。本示例着重讲解如何动态地在现有布局中创建一个按钮,并为其添加点击事件。首先,我们需要理解Android布局的...

    android ViewPager动态添加View

    这通常需要重写`instantiateItem()`方法,检查当前位置是否需要添加新页面,如果需要,则添加数据并创建View。 ```java @Override public Object instantiateItem(ViewGroup container, int position) { if ...

    Android音频剪辑裁剪自定义view

    本文将深入探讨如何创建一个Android音频剪辑裁剪的自定义View,以便用户可以通过拖动来调整音频的剪切时长,并通过滑块实时显示对应的时间点。 首先,我们需要理解Android的音频处理基础。Android提供了`...

    Android 自定义View实现水平温度计

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的UI组件。本项目"Android 自定义View实现水平温度计"就是这样一个实例,它通过自定义View来展示一个水平方向的温度计,...

    Android 自定义View (四) 视频音量调控

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。本教程将深入探讨如何实现一个自定义的音量调控View,以提供更直观、更个性化的音量控制体验。我们参考的...

    horizaotalScrollview动态添加子view,设置点击事件

    本示例主要展示了如何在HorizontalScrollView中动态添加子View,并为每个子View设置点击事件,以便用户交互。这一知识点对于开发涉及大量可滑动、可点击元素的应用尤其重要。 首先,我们需要创建一个...

Global site tag (gtag.js) - Google Analytics