里面包括Button、Checkbock、listview、popupwindow的自定义

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button; public class AndroidWidgetActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
}
public void tolistmain(View view){
Intent intent = new Intent(this, ListMainActivity.class);
startActivity(intent);
}
public void topopwindowmain(View view){
Intent intent = new Intent(this, PopwindowMainActivity.class);
startActivity(intent);
}
}
import java.util.List;
import cn.ittest.domain.item;
import cn.ittest.widget.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView; public class ListAdapter extends BaseAdapter { List<item> items;
private int resource;
private LayoutInflater inflater;
public ListAdapter(Context context,List<item> items,int resource) {
this.resource = resource;
this.items = items;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
} @Override
public int getCount() {
return items.size();
} @Override
public Object getItem(int position) {
return items.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imgView = null;
TextView titleView = null;
TextView expView = null;
if(convertView==null){
convertView = inflater.inflate(resource, null);//生成条目界面对象
imgView = (ImageView) convertView.findViewById(R.id.img);
titleView = (TextView) convertView.findViewById(R.id.tvtitle);
expView = (TextView) convertView.findViewById(R.id.tvexp); ViewCache cache = new ViewCache();
cache.imgView = imgView;
cache.titleView = titleView;
cache.expView = expView;
convertView.setTag(cache);
}else{
ViewCache cache = (ViewCache) convertView.getTag();
imgView = cache.imgView;
titleView = cache.titleView;
expView = cache.expView;
}
item listItem = items.get(position);
imgView.setImageResource(R.drawable.listtitle);
titleView.setText(listItem.getTitle());
expView.setText(listItem.getExp()); return convertView;
} private final class ViewCache{
public ImageView imgView;
public TextView titleView;
public TextView expView;
}
}
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.LinearLayout.LayoutParams;
import android.widget.Toast; public class PopwindowMainActivity extends Activity{ private int screenx = 0;
private int screeny = 0;
private int x=0,y=0;
private EditText edtx;
private EditText edty;
private TextView showxy;
private Button sure;
private Button cancle;
private PopupWindow popupWindow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pop);
edtx = (EditText)this.findViewById(R.id.edtx);
edty = (EditText)this.findViewById(R.id.edty);
showxy = (TextView)this.findViewById(R.id.showxy);
sure = (Button)this.findViewById(R.id.sure);
cancle = (Button)this.findViewById(R.id.cancle);
showscreen();
innit();
}
public void showscreen(){
screenx = getWindowManager().getDefaultDisplay().getWidth();//获得屏幕宽度
screeny = getWindowManager().getDefaultDisplay().getHeight();//获得屏幕高度
showxy.setText("X:"+screenx+" "+"Y:"+screeny);
}
public void innit(){
View popitem = getLayoutInflater().inflate(R.layout.popwindowitem,null);
popupWindow = new PopupWindow(popitem,LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);//初始化窗口
popupWindow.setFocusable(true);//
sure.setOnClickListener(new onpopsureclicklistener());
cancle.setOnClickListener(new onpopcancleclicklistener());
final EditText edtshow = (EditText)popitem.findViewById(R.id.edtshow);
Button itemsure = (Button)popitem.findViewById(R.id.itemsure);
Button itemcancle = (Button)popitem.findViewById(R.id.itemcancle);
itemsure.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String showString = edtshow.getText().toString();
if (showString != null) {
Toast.makeText(getApplicationContext(), showString, Toast.LENGTH_SHORT).show();
popupWindow.dismiss();
}else {
Toast.makeText(getApplicationContext(), "输入为空,请重新输入!", Toast.LENGTH_SHORT).show();
}
}
});
itemcancle.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (popupWindow != null) {
popupWindow.dismiss();
}
}
});
}
public final class onpopsureclicklistener implements View.OnClickListener{ @Override
public void onClick(View v) {
try {
x = Integer.parseInt(edtx.getText().toString());
y = Integer.parseInt(edty.getText().toString());
popupWindow.showAtLocation(findViewById(R.id.layout), Gravity.LEFT|Gravity.TOP, x, y);
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "输入的数据无效,请重新输入!", 1).show();
}
}
}
public final class onpopcancleclicklistener implements View.OnClickListener{ @Override
public void onClick(View v) {
if (popupWindow != null) {
popupWindow.dismiss();
}
}
}
}
public class item {
private String title;
private String exp;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getExp() {
return exp;
}
public void setExp(String exp) {
this.exp = exp;
}
public item(String title, String exp) {
super();
this.title = title;
this.exp = exp;
}
public item() {
}
@Override
public String toString() {
return "item [title=" + title + ", exp=" + exp + "]";
}
}
import java.util.ArrayList;
import java.util.List;
import cn.ittest.adapter.ListAdapter;
import cn.ittest.domain.item;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast; public class ListMainActivity extends Activity{ private ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.list);
list = (ListView)this.findViewById(R.id.list);
list.setOnItemClickListener(new onItemclicklistener());
show();
}
public final class onItemclicklistener implements OnItemClickListener{ @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ListView listView = (ListView)parent;
item liItem = (item) listView.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), liItem.toString(), 1).show();
}
}
public void show(){
List<item> items = new ArrayList<item>();
for (int i = 1; i <= 15; i++) {
item lItem = new item("第"+i+"个标题", "详细介绍神马!!!!!!!!!!!!!!!");
items.add(lItem);
}
ListAdapter adapter = new ListAdapter(this, items, R.layout.listitem);
list.setAdapter(adapter);
}
}





地址:http://download.csdn.net/detail/u011566000/5865305

一个自定义控件的Demo的更多相关文章

  1. ASP.NET自定义控件入门Demo

    最近看了MSDN关于自定义控件的介绍,根据官方的文档,自己学着做了一个简单的Demo给需要的朋友参考. ASP.NET 源生的TextBox是不带Label标签的,这里我要实现的是创建一个带Label ...

  2. 我的第一个 react redux demo

    最近学习react redux,先前看过了几本书和一些博客之类的,感觉还不错,比如<深入浅出react和redux>,<React全栈++Redux+Flux+webpack+Bab ...

  3. 1.类的加载机制_继承类的加载(一个小的Demo)说明

    今天我们先来一个小的Demo来了解类的加载顺序. public class ClassLoaderTest { public static void main(String[] args) { Sys ...

  4. 第一个ajax小demo

    第一个ajax小demo 文章来源:http://blog.csdn.net/magi1201/article/details/44569657

  5. [WPF 自定义控件]开始一个自定义控件库项目

    1. 目标 我实现了一个自定义控件库,并且打算用这个控件库作例子写一些博客.这个控件库主要目标是用于教学,希望通过这些博客初学者可以学会为自己或公司创建自定义控件,并且对WPF有更深入的了解. 控件库 ...

  6. 无废话WCF入门教程六[一个简单的Demo]

    一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...

  7. 一起来花5分钟写一个PHP入门Demo

    最近公司招了几个应届毕业生,他们对前端的了解还挺多,但是对后端的技术一无所知,我觉得,作为一个前端攻城狮,如果你有远大的抱负,就应该雨露均沾... 今天我就跟大家讲一讲PHP最基本的入门,至少别人问起 ...

  8. 使用angular.js开发的一个简易todo demo

    前沿 在CVTE实习考察的一周里,接触到了angular,并在最后的一天任务里要求使用angular做一个功能主要包括创建.编辑.恢复.删除以及留言的todo demo,并支持响应式布局.因为之前没怎 ...

  9. 他的第一个NDK的Demo

    DEMO下载链接: http://download.csdn.net/detail/logicsboy/7535409 首先给你们恶补下啥是NDK:(我从百度Copy的) NDK全称:Native D ...

随机推荐

  1. 理解RESTful

    REST全称为Representational State Transfer,可以翻译为“表现状态转换”,是由是Roy Thomas Fielding在他2000年的博士论文中提出的,目的是为了得到一 ...

  2. 疑惑的 java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()L

    在MAVEN项目里面,在整合spring和mybatis在执行数据库操作的时候报出了: java.lang.AbstractMethodError: org.mybatis.spring.transa ...

  3. event事件对象和clientX,clientY

    一.event : 事件对象 , 当一个事件发生的时候,和当前这个对象发生的这个事件有关的一些详细的信息都会被临时保存到一个指定地方-event对象,供我们在需要的调用.如:飞机-黑匣子 事件对象必须 ...

  4. Keil软件常见的警告和错误含义。——Arvin

    1. warning:  #767-D: conversion from pointer to smaller integer 解释:将指针转换为较小的整数 影响:可能造成的影响:容易引起数据截断,造 ...

  5. 当云遇见APP性能测试会怎样?

    一个测试人员应该明白,无论是在云内部或是外部,对一个应用程序而言,需要进行测试的地方都是一样的.最终用户只关注的是一个无缺陷的高性能的应用程序,而不关心应用程序位于哪里.在大多数的云服务协议里,都会提 ...

  6. css样式之 direction

    今天看到 direction:rtl.一时有点发傻. 其实就是文本读取顺序.默认是ltr从左向右读.rtl是从右向左读取.

  7. MySQL问题记录--python插入中文至MySQL提示SQLErroor:1366错误

    一.在爬虫脚本做以下操作仍提示错误:SQL Error: 1366: Incorrect string value: "\xd0\xc2\xce\xc5-" for column  ...

  8. RStudio相关

    1.设置默认目录,tool-Global Options,设定后要重启RStudio才能生效2.Ctrl+l清屏控制台3.↑健.回忆前一条命令,↓健相反4.Ctrl+↑,查找相应前缀的历史记录5.创建 ...

  9. 检测cpu是否支持虚拟化和二级地址转换【转】

    SLAT:二级地址转换   用微软的小工具“Coreinfo.exe” 下载地址是: http://technet.microsoft.com/en-us/sysinternals/cc835722 ...

  10. php案列4

    一个最简单的利用php生成随机数或者随机字符串的函数.$chars变量中的字符自己修改就能达到数字或者字符串的目的     $len表示长度,代码如下: 复制代码 代码如下: /** * 产生随机字符 ...