相逢意气为君饮,系马高楼垂柳边。这篇文章主要讲述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;
【Android动态添加textview组件和imageview组件】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>
推荐阅读
- Android注解使用之Dagger2实现项目依赖关系解耦
- 动脑学院Android VIP课程_架构_01
- BottomBar之Android底部菜单
- 踩坑实录Android studio中关于 No cached version of **** available for of处理办法
- AndroidStudio 中使用FFMPEG
- 安装mysql时,提示This application requires .NET framework 4.0问题
- Codeforces 348B(Apple Tree(DFS+LCM+思维))
- 简记Ubuntu下载 Android源码
- 华为 Mate8 Emui 5.0 安卓 7.0 root 记录