package com.bnd.adapter;
import java.util.ArrayList;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;
import com.bnd.R;
import com.bnd.DAO.AppButtonDAO;
import com.bnd.DAO.AppDAO;
import com.bnd.DO.App;
import com.bnd.DO.AppButton;
import com.bnd.DO.Room;
import com.bnd.activity.AppDetailActivity;
import com.bnd.activity.AppsActivity;
import com.bnd.activity.ImgGridViewActivity;
import com.bnd.dialog.TimingOperationDialog;
import com.bnd.util.CmdFactory;
import com.bnd.util.GlobalData;
public class AppsGridViewAdapter extends BaseAdapter {
private ArrayList<App> apps;
private AppsActivity context;
private Room room;
private EditText appNameEdit;
private EditText btnNameEdit;
public AppsGridViewAdapter(ArrayList<App> apps,Room room,AppsActivity context) {
this.apps = apps;
this.room = room;
this.context = context;
}
@Override
public int getCount() {
return apps.size();
}
@Override
public Object getItem(int position) {
return apps.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View layout = View.inflate(context, R.layout.layout_single_app, null);
TextView appText = (TextView)layout.findViewById(R.id.app_textview_title);
ImageView appImage = (ImageView) layout.findViewById(R.id.app_imageview_avatar);
LinearLayout btnLayout = (LinearLayout) layout.findViewById(R.id.layout_app_btns);
App app = apps.get(position);
appText.setText(app.getAppName());
appImage.setImageResource(Integer.parseInt(app.getAppImg()));
appImage.setOnClickListener(new AppImageClickListener(position));
appImage.setOnLongClickListener(new AppImageLongClickListener(position));
ArrayList<AppButton> appBtns = (ArrayList<AppButton>)app.getBtnsArray();
if(appBtns == null) return layout; // 器具没有自带按钮,直接返回 (“添加”按钮)
appText.setOnLongClickListener(new AppNameTextLongClickListener(app));
int showCount = app.getShowInListCount();
if(showCount == 2){
for(AppButton appBtn:appBtns){
if(!appBtn.isShowInList()) break;
Button btn = (Button)View.inflate(context, R.layout.button_app_in_list, null);
LayoutParams params =new LinearLayout.LayoutParams(90,LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(2, 4, 2, 4);
btn.setLayoutParams(params);
btn.setText(appBtn.getBtnName());
btn.setOnClickListener(new AppBtnClickListener(appBtn));
btn.setOnLongClickListener(new AppBtnLongClickListener(appBtn));
btnLayout.addView(btn);
}
}else if(showCount == 3){
int i = 0;
for(AppButton appBtn:appBtns){
if(!appBtn.isShowInList()) break;
Button btn = (Button)View.inflate(context, R.layout.button_app_in_list, null);
LayoutParams params = null;
if(i==0||i==2)
params = new LinearLayout.LayoutParams(65,LinearLayout.LayoutParams.WRAP_CONTENT);
else
params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(2, 4, 2, 4);
btn.setLayoutParams(params);
btn.setText(appBtn.getBtnName());
btn.setOnClickListener(new AppBtnClickListener(appBtn));
btn.setOnLongClickListener(new AppBtnLongClickListener(appBtn));
btnLayout.addView(btn);
++i;
}
}else{
int i = 0;
for(AppButton appBtn:appBtns){
if(!appBtn.isShowInList()) break;
Button btn = (Button)View.inflate(context, R.layout.button_app_in_list, null);
LayoutParams params = null;
params = new LinearLayout.LayoutParams(42,LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(2, 4, 2, 4);
btn.setLayoutParams(params);
btn.setText(appBtn.getBtnName());
btn.setOnClickListener(new AppBtnClickListener(appBtn));
btn.setOnLongClickListener(new AppBtnLongClickListener(appBtn));
btnLayout.addView(btn);
++i;
}
}
return layout;
}
//长按电器文本动作
class AppNameTextLongClickListener implements OnLongClickListener {
private App app;
public AppNameTextLongClickListener(App app){
this.app = app;
}
@Override
public boolean onLongClick(View v) {
//--修改电器名称
getUpdateAppNameDialog(app).show();
return true;
}
}
//点击家电动作
class AppImageClickListener implements OnClickListener {
private int position;
public AppImageClickListener(int position){
this.position = position;
}
@Override
public void onClick(View view) {
// 点击 “添加” 按钮
if(context.getString(R.string.add_btn_title).equals(apps.get(position).getAppName())){
Builder builder=new Builder(context);
final CharSequence[] items = { "灯类", "普通家电", "门窗类" ,"其他"};
builder.setTitle("请选择要添加电器的类型");
builder.setItems(items,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch(which){
case 0: //------灯类
getLightDialog().show();
break;
case 1: //------普通家电
getAppliancesDialog().show();
break;
case 2: //------门窗类
getDoorWindowDialog().show();
break;
case 3: //------其他
getOtherDialog().show();
}
}
});
builder.setNegativeButton("取消", null).create().show();
}else{
//点击器具的图片所执行的动作
if(context.getString(R.string.app_name_dvd).equals(apps.get(position).getAppInnerName())
|| context.getString(R.string.app_name_aircondition).equals(apps.get(position).getAppInnerName())
|| context.getString(R.string.app_name_bgmusic).equals(apps.get(position).getAppInnerName())
|| context.getString(R.string.app_name_iptv).equals(apps.get(position).getAppInnerName())
|| context.getString(R.string.app_name_stb).equals(apps.get(position).getAppInnerName())
|| context.getString(R.string.app_name_tv).equals(apps.get(position).getAppInnerName())
|| context.getString(R.string.app_name_hcinema).equals(apps.get(position).getAppInnerName())){
Intent intent = new Intent(context,AppDetailActivity.class);
intent.putExtra("app", apps.get(position));
context.startActivity(intent);
}
}
}
}
//长按家电动作
class AppImageLongClickListener implements OnLongClickListener {
private int position;
public AppImageLongClickListener(int position){
this.position = position;
}
@Override
public boolean onLongClick(View view) {
if(context.getString(R.string.add_btn_title).equals(apps.get(position).getAppName())) return false;
Builder builder =new Builder(context);
CharSequence[] items;
if("light".equals(apps.get(position).getAppType())){
items = new CharSequence[]{ "修改电器名称", "修改图片", "删除本电器" ,"电灯定时开关操作" };
}else{
items = new CharSequence[]{ "修改电器名称", "修改图片", "删除本电器" };
}
builder.setTitle("请选择操作:");
builder.setItems(items,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch(which){
case 0: //------修改电器名称
getUpdateAppNameDialog(apps.get(position)).show();
break;
case 1: //------修改图片
Intent inte
没有合适的资源?快使用搜索试试~ 我知道了~
基于Android平台的Java智能家居系统-SmartHome
共354个文件
class:126个
png:115个
xml:47个
5星 · 超过95%的资源 需积分: 8 275 下载量 56 浏览量
2014-03-31
19:35:34
上传
评论 9
收藏 14.2MB ZIP 举报
温馨提示
基于android系统开发的智能家居源码,学习android的兄弟们可以研究研究了,应该有一些可以直接使用的地方;可作为基础Android开发学习Demo,也可作为智能控制系统开发使用;
资源推荐
资源详情
资源评论
收起资源包目录
基于Android平台的Java智能家居系统-SmartHome (354个子文件)
all-wcprops 440B
all-wcprops 440B
resources.ap_ 4.45MB
SmartHome.apk 4.57MB
SerialPort.c 4KB
proguard.cfg 1KB
AppsGridViewAdapter.class 20KB
AppDetailActivity.class 12KB
AppDAO.class 8KB
HomeActivity.class 7KB
CmdFactory.class 7KB
TimingOperationDialog.class 6KB
AppsActivity.class 6KB
RoomPagerAdapter.class 6KB
R$drawable.class 5KB
AppButtonDAO.class 5KB
R$id.class 5KB
AutoTurnDAO.class 4KB
AppPagerAdapter.class 4KB
RoomDAO.class 4KB
AppsGridViewAdapter$AppImageLongClickListener$1.class 4KB
SerialPortService.class 4KB
GlobalData.class 4KB
R$string.class 4KB
AppImgGridAdapter.class 3KB
AppsGridViewAdapter$AppImageClickListener.class 3KB
App.class 3KB
RoomPagerAdapter$RoomGridLongClickListener.class 3KB
SceneDAO.class 3KB
RoomImgGridAdapter.class 3KB
EditRoomDialog.class 3KB
AppsGridViewAdapter$AppImageLongClickListener.class 3KB
RoomPagerAdapter$RoomGridLongClickListener$1.class 3KB
AppsGridViewAdapter$AppBtnLongClickListener.class 3KB
AppDetailActivity$AppBtnLongClickListener.class 3KB
DateUtil.class 2KB
SerialPort.class 2KB
AddRoomDialog.class 2KB
SerialPortActivity.class 2KB
RoomPagerAdapter$RoomGridItemClickListener.class 2KB
SmartHomeDB.class 2KB
TimeSettingDialog$setTime.class 2KB
TimingOperationDialog$light_Off.class 2KB
AppButton.class 2KB
TimingOperationDialog$light_On.class 2KB
RoomsGridViewAdapter.class 2KB
ServiceManager.class 2KB
AddrDialog.class 2KB
SerialPortService$2.class 2KB
AppDetailActivity$3.class 2KB
TimeSettingDialog.class 2KB
AppsGridViewAdapter$6.class 2KB
AddRoomDialog$BtnOKClickListener.class 2KB
AppsGridViewAdapter$AppBtnLongClickListener$1.class 2KB
AppsGridViewAdapter$5.class 2KB
EditRoomDialog$BtnOKClickListener.class 2KB
BaudratDialog.class 2KB
AddrDialog$BtnDoneClickListener.class 2KB
AppDetailActivity$AppBtnClickListener.class 2KB
AppsGridViewAdapter$AppImageLongClickListener$1$1.class 2KB
BaudratDialog$BtnDoneClickListener.class 2KB
AppDetailActivity$AppBtnLongClickListener$1.class 2KB
PasswordDialog$BtnNextClickListener.class 2KB
AppsGridViewAdapter$AppImageClickListener$1.class 1KB
AppDetailActivity$LongOnClickBtnAdd.class 1KB
RoomPagerAdapter$RoomGridLongClickListener$1$1.class 1KB
RoomImgGridAdapter$RoomImgClickListener.class 1KB
AppImgGridAdapter$AppImgClickListener.class 1KB
Scene.class 1KB
PasswordDialog.class 1KB
TimingOperationDialog$CancelOffClickListener.class 1KB
SettingDialog.class 1KB
TimingOperationDialog$CancelOnClickListener.class 1KB
R$layout.class 1KB
SerialPortService$1.class 1KB
Application.class 1KB
ImgGridViewActivity.class 1KB
AppDetailActivity$2.class 1KB
AppsActivity$1.class 1KB
BootBroadcastReceiver.class 1KB
HomeActivity$RoomPagerChangeListener.class 1KB
AppsGridViewAdapter$4.class 1KB
AppDetailActivity$MyVolThread.class 1KB
HomeActivity$1.class 1KB
AppsGridViewAdapter$3.class 1KB
Room.class 1KB
AutoTurn.class 1KB
AppsGridViewAdapter$1.class 1KB
AppsGridViewAdapter$2.class 1KB
PoweroffDialog.class 1KB
EditRoomDialog$BtnSelectPicClickListener.class 1KB
AddRoomDialog$BtnSelectPicClickListener.class 1KB
AppsActivity$AppPagerChangeListener.class 1KB
AppsGridViewAdapter$AppBtnClickListener.class 1KB
HomeActivity$SettingImgClickListener.class 1KB
AppsGridViewAdapter$AppNameTextLongClickListener.class 1KB
RoomDTO.class 1KB
HomeActivity$SceneImgLongClickListener1.class 1KB
HomeActivity$SceneImgLongClickListener.class 1KB
SettingDialog$BtnTime_and_Date.class 1KB
共 354 条
- 1
- 2
- 3
- 4
yushuaixm
- 粉丝: 3
- 资源: 74
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页