mirror of
https://github.com/niushuai233/DevControl.git
synced 2024-10-27 22:43:20 +08:00
feat: 处理页面间传递数据
This commit is contained in:
parent
c37aecc354
commit
6eea9d57ad
@ -1,5 +1,7 @@
|
|||||||
package cc.niushuai.project.devcontrol.base.ui;
|
package cc.niushuai.project.devcontrol.base.ui;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Intent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@ -15,6 +17,7 @@ import cc.niushuai.project.devcontrol.base.util.Global;
|
|||||||
import cc.niushuai.project.devcontrol.base.util.Keys;
|
import cc.niushuai.project.devcontrol.base.util.Keys;
|
||||||
import cc.niushuai.project.devcontrol.base.util.ToastUtil;
|
import cc.niushuai.project.devcontrol.base.util.ToastUtil;
|
||||||
import cc.niushuai.project.devcontrol.base.util.UiUtil;
|
import cc.niushuai.project.devcontrol.base.util.UiUtil;
|
||||||
|
import cc.niushuai.project.devcontrol.base.util.XLog;
|
||||||
import cc.niushuai.project.devcontrol.ui.common.IconSelectDialogFragment;
|
import cc.niushuai.project.devcontrol.ui.common.IconSelectDialogFragment;
|
||||||
import cc.niushuai.project.devcontrol.vo.DeviceInfo;
|
import cc.niushuai.project.devcontrol.vo.DeviceInfo;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
@ -98,17 +101,6 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
protected void addListener() {
|
protected void addListener() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 返回上一页
|
|
||||||
*
|
|
||||||
* @param activity
|
|
||||||
* @author niushuai
|
|
||||||
* @date: 2022/10/19 14:46
|
|
||||||
*/
|
|
||||||
protected void activityButtonBackClickListener(BaseActivity activity) {
|
|
||||||
findViewById(R.id.activity_title_back).setOnClickListener(view -> activity.finish());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义back的点击事件
|
* 自定义back的点击事件
|
||||||
*
|
*
|
||||||
@ -120,6 +112,65 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
findViewById(R.id.activity_title_back).setOnClickListener(onClickListener);
|
findViewById(R.id.activity_title_back).setOnClickListener(onClickListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回上一页
|
||||||
|
*
|
||||||
|
* @param activity
|
||||||
|
* @author niushuai
|
||||||
|
* @date: 2022/10/19 14:46
|
||||||
|
*/
|
||||||
|
protected void activityButtonBackClickListener(BaseActivity activity) {
|
||||||
|
findViewById(R.id.activity_title_back).setOnClickListener(view -> {
|
||||||
|
XLog.v(Keys.Tag.ACTIVITY_JUMP, "{}.activityButtonBackClickListener: 携带device数据", this.getClass().getSimpleName());
|
||||||
|
withBackData(activity);
|
||||||
|
activity.finish();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回上一层时携带当前的device信息
|
||||||
|
*
|
||||||
|
* @param activity
|
||||||
|
* @author niushuai233
|
||||||
|
* @date: 2022/10/28 14:59
|
||||||
|
*/
|
||||||
|
private void withBackData(BaseActivity activity) {
|
||||||
|
Intent data = new Intent();
|
||||||
|
data.putExtra(Keys.DEVICE_INFO, this.device);
|
||||||
|
activity.setResult(Keys.RequestCode.GENERAL, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回键被按下监控事件
|
||||||
|
*
|
||||||
|
* @author niushuai233
|
||||||
|
* @date: 2022/10/28 14:59
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void onBackPressed() {
|
||||||
|
XLog.v(Keys.Tag.ACTIVITY_JUMP, "{}.onBackPressed: 携带device数据", this.getClass().getSimpleName());
|
||||||
|
withBackData(this);
|
||||||
|
super.onBackPressed();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接收其他页面传输的数据
|
||||||
|
*
|
||||||
|
* @param requestCode
|
||||||
|
* @param resultCode
|
||||||
|
* @param data
|
||||||
|
* @author niushuai233
|
||||||
|
* @date: 2022/10/28 15:04
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
XLog.v(Keys.Tag.ACTIVITY_JUMP, "{}.onActivityResult: requestCode: {}, resultCode: {}, 处理返回数据: {}", this.getClass().getSimpleName(), requestCode, resultCode, data);
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
if (null!= data && null != data.getSerializableExtra(Keys.DEVICE_INFO)) {
|
||||||
|
this.device = (DeviceInfo) data.getSerializableExtra(Keys.DEVICE_INFO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更多设置 打开新的activity
|
* 更多设置 打开新的activity
|
||||||
*
|
*
|
||||||
@ -136,7 +187,7 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
moreSetView.setVisibility(View.GONE);
|
moreSetView.setVisibility(View.GONE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
moreSetView.setOnClickListener(view -> ActivityUtil.startActivity(activity, clazz, withData));
|
moreSetView.setOnClickListener(view -> ActivityUtil.startActivityForResult(activity, clazz, withData, Keys.RequestCode.GENERAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -156,7 +207,7 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
moreSetView.setVisibility(View.GONE);
|
moreSetView.setVisibility(View.GONE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
moreSetView.setOnClickListener(view -> ActivityUtil.startActivity(activity, clazz, keys, values));
|
moreSetView.setOnClickListener(view -> ActivityUtil.startActivityForResult(activity, clazz, keys, values, Keys.RequestCode.GENERAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -205,6 +256,30 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
Global.initDeviceInfoMap();
|
Global.initDeviceInfoMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回上一页
|
||||||
|
*
|
||||||
|
* @author niushuai233
|
||||||
|
* @date: 2022/10/28 15:16
|
||||||
|
*/
|
||||||
|
protected void back() {
|
||||||
|
this.finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 携带deviceInfo返回上一页
|
||||||
|
*
|
||||||
|
* @author niushuai233
|
||||||
|
* @date: 2022/10/28 15:16
|
||||||
|
*/
|
||||||
|
protected void backWithDeviceInfo() {
|
||||||
|
Intent data = new Intent();
|
||||||
|
data.putExtra(Keys.DEVICE_INFO, this.device);
|
||||||
|
this.setResult(Keys.RequestCode.GENERAL, data);
|
||||||
|
XLog.v(Keys.Tag.ACTIVITY_JUMP, "{}.backWithDeviceInfo 携带device数据", this.getClass().getSimpleName());
|
||||||
|
this.back();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 执行命令 返回成功与否
|
* 执行命令 返回成功与否
|
||||||
|
@ -25,8 +25,7 @@ public class ActivityUtil {
|
|||||||
startActivity(sourceActivity, targetActivity, map);
|
startActivity(sourceActivity, targetActivity, map);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startActivity(Activity sourceActivity, Class<? extends BaseActivity> targetActivity,
|
public static void startActivity(Activity sourceActivity, Class<? extends BaseActivity> targetActivity, Map<String, String> withData) {
|
||||||
Map<String, String> withData) {
|
|
||||||
Intent intent = new Intent(sourceActivity, targetActivity);
|
Intent intent = new Intent(sourceActivity, targetActivity);
|
||||||
if (null != withData) {
|
if (null != withData) {
|
||||||
for (String key : withData.keySet()) {
|
for (String key : withData.keySet()) {
|
||||||
@ -35,4 +34,24 @@ public class ActivityUtil {
|
|||||||
}
|
}
|
||||||
sourceActivity.startActivity(intent);
|
sourceActivity.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void startActivityForResult(Activity sourceActivity, Class<? extends BaseActivity> targetActivity, Map<String, String> withData, Integer requestCode) {
|
||||||
|
|
||||||
|
Intent intent = new Intent(sourceActivity, targetActivity);
|
||||||
|
if (null != withData) {
|
||||||
|
for (String key : withData.keySet()) {
|
||||||
|
intent.putExtra(key, withData.get(key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sourceActivity.startActivityForResult(intent, requestCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void startActivityForResult(Activity sourceActivity, Class<? extends BaseActivity> targetActivity, String[] keys, String[] values, Integer requestCode) {
|
||||||
|
|
||||||
|
HashMap<String, String> map = new HashMap<>();
|
||||||
|
for (int i = 0; i < keys.length; i++) {
|
||||||
|
map.put(keys[i], values[i]);
|
||||||
|
}
|
||||||
|
startActivityForResult(sourceActivity, targetActivity, map, requestCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class ExecUtil {
|
|||||||
XLog.i(Keys.Tag.EXEC_COMMAND, "执行命令: {}, 结果: {}", command, result);
|
XLog.i(Keys.Tag.EXEC_COMMAND, "执行命令: {}, 结果: {}", command, result);
|
||||||
return new CommandResult<>(true, result);
|
return new CommandResult<>(true, result);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
XLog.e(Keys.Tag.EXEC_COMMAND, "执行命令: {}, 异常: {}", command, e.getMessage(), e);
|
XLog.e(Keys.Tag.EXEC_COMMAND, "执行命令: {}, 异常", command, e);
|
||||||
return new CommandResult<>(false, e.getMessage());
|
return new CommandResult<>(false, e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,8 @@ package cc.niushuai.project.devcontrol.base.util;
|
|||||||
public interface Keys {
|
public interface Keys {
|
||||||
|
|
||||||
String ID = "id";
|
String ID = "id";
|
||||||
|
String DEVICE = "device";
|
||||||
|
String DEVICE_INFO = "deviceInfo";
|
||||||
|
|
||||||
String DB_FILE_NAME = "dev_control.db";
|
String DB_FILE_NAME = "dev_control.db";
|
||||||
|
|
||||||
@ -22,5 +24,14 @@ public interface Keys {
|
|||||||
String KEEP_DAY_SELECT = "KeepDaySelect";
|
String KEEP_DAY_SELECT = "KeepDaySelect";
|
||||||
String APP_SETUP = "AppSetup";
|
String APP_SETUP = "AppSetup";
|
||||||
String EXEC_COMMAND = "ExecCommand";
|
String EXEC_COMMAND = "ExecCommand";
|
||||||
|
String ACTIVITY_JUMP = "ActivityJump";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface RequestCode {
|
||||||
|
|
||||||
|
int GENERAL = 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ public class PowerSwitchSetActivity extends BaseActivity {
|
|||||||
|
|
||||||
HashMap<String, String> withData = new HashMap<>(1);
|
HashMap<String, String> withData = new HashMap<>(1);
|
||||||
withData.put(Keys.ID, device.getId());
|
withData.put(Keys.ID, device.getId());
|
||||||
ActivityUtil.startActivity(this, PowerSwitchSetParamActivity.class, withData);
|
ActivityUtil.startActivityForResult(this, PowerSwitchSetParamActivity.class, withData, Keys.RequestCode.GENERAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void outsideLogViewClickListener(View view) {
|
private void outsideLogViewClickListener(View view) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cc.niushuai.project.devcontrol.ui.powerswitch;
|
package cc.niushuai.project.devcontrol.ui.powerswitch;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
@ -11,6 +12,7 @@ import cc.niushuai.project.devcontrol.R;
|
|||||||
import cc.niushuai.project.devcontrol.base.ui.BaseActivity;
|
import cc.niushuai.project.devcontrol.base.ui.BaseActivity;
|
||||||
import cc.niushuai.project.devcontrol.base.util.CommonUiUtil;
|
import cc.niushuai.project.devcontrol.base.util.CommonUiUtil;
|
||||||
import cc.niushuai.project.devcontrol.base.util.Global;
|
import cc.niushuai.project.devcontrol.base.util.Global;
|
||||||
|
import cc.niushuai.project.devcontrol.base.util.Keys;
|
||||||
import cc.niushuai.project.devcontrol.databinding.ActivityPowerSwitchSetParamBinding;
|
import cc.niushuai.project.devcontrol.databinding.ActivityPowerSwitchSetParamBinding;
|
||||||
import cc.niushuai.project.devcontrol.db.DB;
|
import cc.niushuai.project.devcontrol.db.DB;
|
||||||
import cc.niushuai.project.devcontrol.vo.DeviceInfo;
|
import cc.niushuai.project.devcontrol.vo.DeviceInfo;
|
||||||
@ -76,7 +78,7 @@ public class PowerSwitchSetParamActivity extends BaseActivity {
|
|||||||
device = deviceInfo;
|
device = deviceInfo;
|
||||||
|
|
||||||
// 返回上一层
|
// 返回上一层
|
||||||
this.finish();
|
super.backWithDeviceInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user