里面包括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. M2事后分析报告

    设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 这次M2预想的就是解决3个主要问题,1:增加查询自己购买或者发布记录的功能,2:优化 所有的网络连接 ...

  2. 慕课网__CSS__ Relative, absolute,

    同时又left, right  或者 top, bottom时 relative, 尽量少用,会出现层级覆盖, 或者单独使用, 避免层级嵌套, 或者覆盖 absolute具有包裹性, 和破坏性 包裹性 ...

  3. 底部漂浮DIV

    .buttonDiv{background-color: #4e4f50; border: 2px solid #83ABD3; border-radius: 4px; -khtml-opacity: ...

  4. wireshark常用命令

    Wireshark 基本语法,基本使用方法,及包过虑规则: 1.过滤IP,如来源IP或者目标IP等于某个IP   例子: ip.src eq 192.168.1.107 or ip.dst eq 19 ...

  5. 几款极好的 JavaScript 文件上传插件

    文件上传功能作为网页重要的组成部分,几乎无处不在,从简单的单个文件上传到复杂的批量上传.拖放上传,需要开发者花费大量的时间和精力去处理,以期实现好用的上传功能.这篇文章向大家推荐几款很棒的 JavaS ...

  6. 原生Android App项目调用Untiy导出的Android项目

    背景:采用Google VR SDK for Unity 开发3D场景功能,然后导出Android项目,合并到一个Android App里面,供其它Activity调用. 用Google VR for ...

  7. Ubuntu Server 安装桌面untiy

    1.安装 sudo apt-get install ubuntu-desktop sudo apt-get install unity sudo apt-get install unity-commo ...

  8. EntityFrameWork使用MySql数据库分页的BUG

    环境 使用MySQL Connector NET 6.7.4+EF5.0+VS2010 问题描述 IQueryable<T>类型的Where方法和Skip或Take方法一起使用时,生成的S ...

  9. JS添加父节点的方法。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. Python 函数嵌套

    def mumber(a):      def add(b):              return a*b      return add if __name__=="__main__& ...