当前位置:文档之家› Android中ListView设置Button等组件小例子

Android中ListView设置Button等组件小例子

Android中ListView设置Button等组件小例子
Android中ListView设置Button等组件小例子

ListView中加载ImageView,TextView和Button组件的小例子。

package com.listview;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.content.Context;

import android.database.DataSetObserver;

import android.os.Bundle;

import https://www.doczj.com/doc/6510612435.html,youtInflater;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

public class SecondActivity extends Activity{

//自定义一个MyAdapter,继承ListAdapter

public class MyAdapter implements ListAdapter{

private List list;

private LayoutInflater layouyinflater;

public MyAdapter(Context context,List list){ this.list = list;

layouyinflater = LayoutInflater.from(context);

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return list.size();

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return list.get(position);

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

public int getItemViewType(int position) {

// TODO Auto-generated method stub

return position;

}

//获取item.xml文件之中的相关控件,并且为其设置相应的图片或标题

@Override

public View getView(final int position, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

if(convertView == null){

convertView = layouyinflater.inflate(list.get(position).getLayoutId(), null);

ImageView imageview = (ImageView)convertView.findViewById(R.id.evaluateimage);

imageview.setBackgroundResource(list.get(position).getImage()) ;

TextView textview = (TextView)convertView.findViewById(R.id.evaluatetitle);

textview.setTag(list.get(position).getTitle());

Button button = (Button)convertView.findViewById(R.id.button);

button.setText(list.get(position).getButton());

//设置按钮监听事件

button.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast.makeText(SecondActivity.this, position+"号按钮被按下",Toast.LENGTH_SHORT).show();

}

});

}

return null;

}

@Override

public int getViewTypeCount() {

// TODO Auto-generated method stub

return list.size();

}

@Override

public boolean hasStableIds() {

// TODO Auto-generated method stub

return true;

}

@Override

public boolean isEmpty() {

// TODO Auto-generated method stub

return true;

}

@Override

public void registerDataSetObserver(DataSetObserver observer) {

// TODO Auto-generated method stub

}

@Override

public void unregisterDataSetObserver(DataSetObserver observer) {

// TODO Auto-generated method stub

}

@Override

public boolean areAllItemsEnabled() {

// TODO Auto-generated method stub

return true;

}

@Override

public boolean isEnabled(int position) {

// TODO Auto-generated method stub

return true;

}

}

// 定义list

List list = new ArrayList();

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

this.setContentView(https://www.doczj.com/doc/6510612435.html,yout.activity_main);

// 定义图片ID集合

final int[] imageId = new int[]{

R.drawable.img13,R.drawable.img14,R.drawable.img15,R.drawable. img16,

R.drawable.img17,R.drawable.img18,R.drawable.img19,R.drawable. img20};

// 定义TextView内容集合

String[] title = new String[] { "保密设置", "安全", "系统设置", "上网", "我的文档",

"GPS导航", "我的音乐", "E-mail" };

// 定义Button标题集合

String[] button = new String[]{"1","2","3","4","5","6","7","8"};

// 用for循环将定义的集合之中的值放入list之中

for(int i = 0; i < 8; i++){

DetailEntity de = new DetailEntity();

de.setLayoutId(https://www.doczj.com/doc/6510612435.html,yout.item);

de.setImage(imageId[i]);

de.setTitle(title[i]);

de.setButton(button[i]);

list.add(de);

};

ListView lv = (ListView)this.findViewById(R.id.evaluatelistView);

// 自定义MyAdapter适配器

MyAdapter ma = new MyAdapter(this, list);

// 将适配器与ListView绑定

lv.setAdapter(ma);

// 为ListView设置监听器

lv.setOnItemClickListener(new OnItemClickListener(){

@Override

public void onItemClick(AdapterView arg0, View arg1, int int position,long id) {

// TODO Auto-generated method stub

Toast.makeText(SecondActivity.this,"您选中的是第"+position+"列",Toast.LENGTH_SHORT).show();

}

});

}

public class DetailEntity {

private String Buttontitle;

private int imageId;

private String Title;

private int LayoutId;

public void setLayoutId(int item) {

// TODO Auto-generated method stub

LayoutId = item;

}

public CharSequence getButton() {

// TODO Auto-generated method stub

return Buttontitle;

}

public Object getTitle() {

// TODO Auto-generated method stub

return Title;

}

public int getImage() {

// TODO Auto-generated method stub

return imageId;

}

public int getLayoutId() {

// TODO Auto-generated method stub

return LayoutId;

}

public void setButton(String buttontitle) {

// TODO Auto-generated method stub

Buttontitle = buttontitle;

}

public void setTitle(String title) {

// TODO Auto-generated method stub

Title = title;

}

public void setImage(int imageid) {

// TODO Auto-generated method stub

imageId = imageid;

}

}

}

XML文件:

MainActivity.xml文件:

xmlns:android="https://www.doczj.com/doc/6510612435.html,/apk/res/android"

xmlns:tools="https://www.doczj.com/doc/6510612435.html,/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity">

android:id="@+id/evaluatelistView"

android:layout_height="wrap_content"

android:layout_width="match_parent">

Item.xml文件:

xmlns:android="https://www.doczj.com/doc/6510612435.html,/apk/res/android" android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/evaluateimage"

android:paddingRight="10px"

android:paddingTop="20px"

android:paddingBottom="20px"

android:adjustViewBounds="true"

android:maxWidth="72px"

android:maxHeight="72px"

android:layout_height="wrap_content"

android:layout_width="wrap_content"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:padding="10px"

android:layout_gravity="center"

android:id="@+id/evaluatetitle"

android:layout_toRightOf="@id/evaluateimage"

/>

android:id="@+id/button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:focusable="false"/>

android 自定义圆角头像以及使用declare-styleable进行配置属性解析

android 自定义圆角头像以及使用declare-styleable进行配置属性解析由于最新项目中正在检查UI是否与效果图匹配,结果关于联系人模块给的默认图片是四角稍带弧度的圆角,而我们截取的图片是正方形的,现在要给应用统一替换。应用中既用到大圆角头像(即整个头像是圆的)又用到四角稍带弧度的圆角头像,封装一下以便重用。以下直接见代码 [java] view plain copy 在CODE上查看代码片派生到我的代码片 package com.test.demo; import com.test.demo.R; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.Shader.TileMode; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Parcelable; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.widget.ImageView; /** * 圆角imageview */ public class RoundImageView extends ImageView { private static final String TAG = "RoundImageView"; /** * 图片的类型,圆形or圆角 */ private int type; public static final int TYPE_CIRCLE = 0; public static final int TYPE_ROUND = 1; /** * 圆角大小的默认值

Android四大组件

Android四大组件 Android开发平台是开放的平台,而位于四层框架顶端的应用开发,必然涉及到Android组件。本文将为大家详细介绍Android组件。 组件(Component),在谈及所谓架构和重用的时候,是一个重要的事情。很多时候都会说基于组件的软件架构,指的是期望把程序做乐高似的,有一堆接口标准封装完整的组件放在哪里,想用的时候取上几个一搭配,整个程序就构建完成了。 在开篇的时候就在说,Android是一个为组件化而搭建的平台,它引入所谓Mash-Up的概念,这使得你在应用的最上层,想做的不组件化都是很困难的一件事情(底层逻辑,好吧,管不了...)。具体说来,Android有四大组件四喜丸子:Activity、Service、Broadcast Receiver、Content Provider。 Activity 做一个完整的Android程序,不想用到Activity,真的是比较困难的一件事情,除非是想做绿叶想疯了。因为Activity是Android程序与用户交互的窗口,在我看来,从这个层面的视角来看,Android的Activity特像网站的页面。 首先,一个网站,如果一张页面都没有,那...,真是一颗奇葩。而一张页面往往都有个独立的主题和功能点,比如登录页面,注册页面,管理页面,如是。 在每个页面里面,会放一些链接,已实现功能点的串联,有的链接点了,刷,跑到同一站点的另一个页面去了;有的链接点了,啾,可能跳到其他网站的页面去;还有的链接点了,恩...,这次没跑,但当前页面的样子可能有所变化了。这些模式,和Activity给人的感觉很像,只不过实现策略不同罢了,毕竟Android这套架构的核心思想,本身就来自源于Web的Mash-Up概念,视为页面的客户端化,也未尝不可。 Activity,在四大组件中,无疑是最复杂的,这年头,一样东西和界面挂上了勾,都简化不了,想一想,独立做一个应用有多少时间沦落在了界面上,就能琢磨清楚了。从视觉效果来看,一个Activity占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。对于开发者而言,就需要派生一个Activity的子类,然后埋头苦干上述事情。对于Activity的更多细节,先可以参见:reference/android/app/Activity.html。后续,会献上更为详尽的剖析。 Service 服务,从最直白的视角来看,就是剥离了界面的Activity,它们在很多Android的概念方面比较接近,都是封装有一个完整的功能逻辑实现,只不过Service不抛头露脸,只是默默无声的做坚实的后盾。 但其实,换个角度来看,Android中的服务,和我们通常说的Windows服务,Web的后台服务又有一些相近,它们通常都是后台长时间运行,接受上层指令,完成相关事务的模块。

Android平台我的日记设计文档

Android平台我的日记 设计文档 项目名称:mydiray 项目结构示意: 阶段任务名称(一)布局的设计 开始时间: 结束时间: 设计者: 梁凌旭 一、本次任务完成的功能 1、各控件的显示 二、最终功能及效果 三、涉及知识点介绍 四、代码设计 activity_main.xml:

android:layout_centerHorizontal="true" android:layout_marginTop="88dp" android:text="@string/wo" android:textSize="35sp"/>

相关文档 最新文档