feat: 开关操作详情页

This commit is contained in:
niushuai233
2022-10-19 13:53:35 +08:00
parent de1b25d8a4
commit b253a862fb
13 changed files with 211 additions and 41 deletions

View File

@@ -1,13 +1,23 @@
package cc.niushuai.project.devcontrol.ui.device;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatImageView;
import cc.niushuai.project.devcontrol.R;
import cc.niushuai.project.devcontrol.base.activity.BaseActivity;
import cc.niushuai.project.devcontrol.base.entity.device.DeviceInfo;
import cc.niushuai.project.devcontrol.base.enums.OnOffEnum;
import cc.niushuai.project.devcontrol.base.util.GlobalVariables;
import cc.niushuai.project.devcontrol.base.util.Keys;
import cc.niushuai.project.devcontrol.databinding.DeviceActivityBinding;
public class DeviceActivity extends BaseActivity {
private DeviceActivityBinding binding;
private DeviceInfo device;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -17,5 +27,73 @@ public class DeviceActivity extends BaseActivity {
binding = DeviceActivityBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
// 初始化页面数据
init();
// 添加点击事件
addListener();
}
/**
* 初始化页面数据
*
* @author niushuai
* @date: 2022/10/19 11:18
*/
public void init() {
String deviceId = getIntent().getStringExtra(Keys.ID);
DeviceInfo data = GlobalVariables.DEVICE_INFO_MAP.get(deviceId);
if (null != data) {
this.device = data;
// 标题名称
TextView titleTextView = findViewById(R.id.device_activity_title_name);
titleTextView.setText(device.getName());
// 副标题名称
TextView descTextView = findViewById(R.id.device_activity_title_description);
descTextView.setText(device.getDescription());
// 开关底部的名称
TextView contentTextTextView = findViewById(R.id.device_activity_content_text);
contentTextTextView.setText(device.getName());
}
}
/**
* 添加点击事件
*
* @author niushuai
* @date: 2022/10/19 11:49
*/
private void addListener() {
binding.deviceActivityContentSwitch.setOnClickListener(this::switchClickListener);
}
/**
* 开关点击事件处理
*
* @param view 开关view
* @author niushuai
* @date: 2022/10/19 11:52
*/
private void switchClickListener(View view) {
AppCompatImageView appCompatImageView = (AppCompatImageView) view;
int switchImageId, iconImageId;
if (OnOffEnum.OFF.equals(device.getOnOff())) {
device.setOnOff(OnOffEnum.ON);
switchImageId = R.drawable.img_switch_open;
iconImageId = R.drawable.ic_device_light_1_on;
} else {
device.setOnOff(OnOffEnum.OFF);
switchImageId = R.drawable.img_switch_close;
iconImageId = R.drawable.ic_device_light_1_close;
}
appCompatImageView.setImageResource(switchImageId);
((AppCompatImageView) findViewById(R.id.device_activity_content_icon)).setImageResource(iconImageId);
}
}

View File

@@ -0,0 +1,22 @@
package cc.niushuai.project.devcontrol.ui.device;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import cc.niushuai.project.devcontrol.base.entity.device.DeviceInfo;
public class DeviceViewModel extends ViewModel {
private MutableLiveData<DeviceInfo> deviceInfo;
public DeviceViewModel() {
}
public MutableLiveData<DeviceInfo> getDeviceInfo() {
return deviceInfo;
}
public void setDeviceInfo(MutableLiveData<DeviceInfo> deviceInfo) {
this.deviceInfo = deviceInfo;
}
}

View File

@@ -22,6 +22,7 @@ import java.util.List;
import cc.niushuai.project.devcontrol.R;
import cc.niushuai.project.devcontrol.base.entity.device.DeviceInfo;
import cc.niushuai.project.devcontrol.base.util.Keys;
import cc.niushuai.project.devcontrol.databinding.DeviceItemBinding;
import cc.niushuai.project.devcontrol.databinding.MainNavFragmentDeviceBinding;
import cc.niushuai.project.devcontrol.ui.device.DeviceActivity;
@@ -63,19 +64,7 @@ public class NavDeviceFragment extends Fragment {
GridView deviceGv = deviceBinding.deviceGv;
deviceGv.setSelector(new ColorDrawable(Color.TRANSPARENT));
deviceGv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
View text = view.findViewById(R.id.device_item_cardView_id);
String x = ";";
if (text != null) {
x = ((TextView) text).getText().toString();
}
Toast.makeText(getContext(), "Item Clicked" + x, Toast.LENGTH_SHORT).show();
startActivity(new Intent(getActivity(), DeviceActivity.class));
}
});
deviceGv.setOnItemClickListener(this::onItemClick);
// SimpleAdapter gvAdapter = new SimpleAdapter(getContext(), dataItem, R.layout.device_item,
// new String[]{"device_item_cardView_text"}, new int[]{R.id.device_item_cardView_text});
@@ -115,10 +104,29 @@ public class NavDeviceFragment extends Fragment {
return gvData;
}
/**
* 条目点击事件
*
* @param parent 父view
* @param view 被点击的view
* @param position 当前view中的位置顺序
* @param id 组件id
* @author niushuai
* @date: 2022/10/19 11:13
*/
private void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView textId = view.findViewById(R.id.device_item_cardView_id);
Intent intent = new Intent(getActivity(), DeviceActivity.class);
intent.putExtra(Keys.ID, textId.getText());
startActivity(intent);
}
@Override
public void onDestroyView() {
super.onDestroyView();
deviceBinding = null;
deviceItemBinding = null;
}
}