Android动态添加textview组件和imageview组件

import android.app.Activity;

import android.os.Bundle;

import android.view.Gravity;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.Gallery;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.AdapterView.OnItemSelectedListener;

public class Sample_5_4 extends Activity {

//所有资源图片(andy、bill、edgar、torvalds、turing)id的数组

int[] drawableIds=

{R.drawable.andy,R.drawable.bill,R.drawable.edgar,R.drawable.torvalds,R.drawable.turing};

//所有资源字符串(andy、bill、edgar、torvalds、turing)id的数组

int[] msgIds={R.string.andy,R.string.bill,R.string.edgar,R.string.torvalds,R.string.turing};

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

ListView lv=(ListView)this.findViewById(R.id.ListView01);//初始化ListView

BaseAdapter ba=new BaseAdapter(){//为ListView准备内容适配器

public int getCount() {return 5;}//总共5个选项

public Object getItem(int arg0) { return null; }

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

public View getView(int arg0, View arg1, ViewGroup arg2) {

//动态生成每个下拉项对应的View,每个下拉项View由LinearLayout

//中包含一个ImageView及一个TextView构成

LinearLayout ll=new LinearLayout(Sample_5_4.this);//初始化LinearLayout

ll.setOrientation(LinearLayout.HORIZONTAL); //设置朝向

ll.setPadding(5,5,5,5);//设置四周留白

ImageView ii=new ImageView(Sample_5_4.this);//初始化ImageView

ii.setImageDrawable(getResources().getDrawable(drawableIds[arg0]));//设置图片

ii.setScaleType(ImageView.ScaleType.FIT_XY);

ii.setLayoutParams(new Gallery.LayoutParams(100,98));

ll.addView(ii);//添加到LinearLayout中

TextView tv=new TextView(Sample_5_4.this);//初始化TextView

tv.setText(getResources().getText(msgIds[arg0]));//设置内容

tv.setTextSize(24);//设置字体大小

tv.setTextColor(Sample_5_4.this.getResources().getColor(R.color.white));//设置字体颜色

tv.setPadding(5,5,5,5);//设置四周留白

tv.setGravity(Gravity.LEFT);

ll.addView(tv);//添加到LinearLayout中

return ll;

}

};

lv.setAdapter(ba);//为ListView设置内容适配器

lv.setOnItemSelectedListener(//设置选项选中的监听器

new OnItemSelectedListener(){

public void onItemSelected(AdapterView<?> arg0, View arg1,

int arg2, long arg3) {//重写选项被选中事件的处理方法

TextView tv=(TextView)findViewById(R.id.TextView01);//获取主界面TextView

LinearLayout ll=(LinearLayout)arg1;//获取当前选中选项对应的LinearLayout

TextView tvn=(TextView)ll.getChildAt(1);//获取其中的TextView

StringBuilder sb=new StringBuilder();//用StringBuilder动态生成信息

sb.append(getResources().getText(R.string.ys));

sb.append(":");

sb.append(tvn.getText());

String stemp=sb.toString();

tv.setText(stemp.split("\\n")[0]);//信息设置进主界面TextView

}

public void onNothingSelected(AdapterView<?> arg0){}

}

);

lv.setOnItemClickListener(//设置选项被单击的监听器

new OnItemClickListener(){

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,

long arg3) {//重写选项被单击事件的处理方法

TextView tv=(TextView)findViewById(R.id.TextView01);//获取主界面TextView

LinearLayout ll=(LinearLayout)arg1;//获取当前选中选项对应的LinearLayout

TextView tvn=(TextView)ll.getChildAt(1);//获取其中的TextView

StringBuilder sb=new StringBuilder();//用StringBuilder动态生成信息

sb.append(getResources().getText(R.string.ys));

sb.append(":");

sb.append(tvn.getText());

String stemp=sb.toString();

tv.setText(stemp.split("\\n")[0]);//信息设置进主界面TextView

}

}

);

}

}

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:id="@+id/TextView01"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="24dip"

android:textColor="@color/white"

android:text="@string/hello"/>

<ListView

android:id="@+id/ListView01"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:choiceMode="singleChoice"/>

</LinearLayout>

时间: 2024-10-10 18:23:49

Android动态添加textview组件和imageview组件的相关文章

Android 设计一个菱形形状的Imageview组件.

网上没有资料,特来请教下大神 Android 设计一个菱形形状的Imageview组件. >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007107851/Android设计一个菱形形状的Imageview组件.html

android 动态添加控件并实现每个子控件的点击事件

需求:我们要点击进入一家店铺,根据不同的店铺,显示不同条数的子条目 如:消毒间,洗菜间等...这些都是或多或少的,所以需要动态添加: 首先自定义View(linearLayout): package cn.qust.fang.widget; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.widget.MediaController; import io.vov.vitamio.widget.VideoView; import a

Android动态添加Fragment

Android动态添加Fragment 效果图如下: 项目结构图如下: Fragment1: package com.demo.dongtaifragment; import android.app.Fragment; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.LayoutI

Android动态添加布局

//1.利用LayoutInflater的inflate动态加载XML mLinearLayout = (LinearLayout)findViewById(R.id.LinearLayout_ID); LayoutInflater layoutInflater = LayoutInflater.from(context); View view = layoutInflater.inflate(resource--需要加载的XML, null); XML:resource = R.layout.

Android 动态添加Spinner(.java文件内实现) 实现 改变spinner 内文字属性

动态添加spinner 控件 Spinner s = new Spinner(this); String []items={"自己定义的要显示的数组"}; my_SpinnerAdapter array_adapter =new my_SpinnerAdapter(this, android.R.layout.simple_spinner_item, items); array_adapter .setDropDownViewResource(android.R.layout.simp

Android动态添加和移除布局

1 package com.hyang.administrator.studentproject; 2 3 import android.os.Bundle; 4 import android.support.v7.app.AppCompatActivity; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 import android.widget.Button; 8 import android.widg

Android 动态添加图片 换行

<strong>近在项目中用到动态添加图片,然后换行的实现.刚开始想用GridView,但是没用,什么原因到是忘了.下面我记录一下我的实现方式.</strong> <strong> </strong> 看代码xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andro

android动态添加view

动态添加一个view. 首先,搞清楚是哪个view(子view),要添加到哪个view(父view)中:其次,子view的属性怎么设置:这两个问题明白了,就容易了. 举个例子:比如要在一个LinearLayout中添加一个Button,  子view是Button,父view是LinearLayout. 子view的属性就是通过LayoutParams来设置的,注意是LinearLayout.LayoutParams,因为子view的高度,宽度这些都是针对父view的,要告诉父view自己要占用

Android — — —动态添加碎片

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