第二次阶段开始,对于第一阶段的数据传输线进行优化,因为第一次数据传输入栈activity太多,导致用户使用感不好,人机分离,同时大量activity的入栈,会导致app很卡,所以进行了优化,采用的是向上一个activity/fragment回传数据(一开始以为肯定有一个简洁的方法来实现不同活动的数据共享,但好像没有,只能传递,我没有找到方法反正),这样将用户id等等主键传值进行操作,以下为其一代码:
一:这是fragment向activity内进行跳转
Button myButton = (Button) getActivity().findViewById(R.id.Add_Button);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), Add.class);
Bundle bundle = new Bundle();
bundle.putInt("User_id",User_id);
intent.putExtras(bundle);
//2023.5.16更改
startActivityForResult(intent,1);
// startActivity(intent);
}
});
二:我跳转回来的语句
Intent intent = new Intent(Add.this, HomeFragment.class);
//更新操作 2023.5.16
System.out.println("comsumer === " + comsumer);
intent.putExtra("already_Login",comsumer);
setResult(RESULT_OK,intent);
finish();
三:源活动接收的语句
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1)
{
if(resultCode == RESULT_OK)
{
int flag = data.getIntExtra("already_Login",-1);
// System.out.println("收到了 == " + data.getIntExtra("already_Login",-1));
if(flag == -1)
{
Toast.makeText(getContext(), "出错了,主人", Toast.LENGTH_SHORT).show();
}else
{
Toast.makeText(getContext(), "收到了,主人", Toast.LENGTH_SHORT).show();
User_id = flag;
System.out.println("User_id " + User_id);
simpleAdapter = new SimpleAdapter(getActivity(),getData(),R.layout.my_menu,new String[]{"type","money"},new int[]{R.id.myMenu_type,R.id.myMenu_money});
listView.setAdapter(simpleAdapter);
}
}
}
}
同时,listview进行更新防止了activity的入栈,很简介的代码便实现了,以下为代码,主要是返回到fragment,listview自己进行更新。
simpleAdapter = new SimpleAdapter(getActivity(),getData(),R.layout.my_menu,new String[]{"type","money"},new int[]{R.id.myMenu_type,R.id.myMenu_money});
listView.setAdapter(simpleAdapter);
标签:流程,intent,User,activity,new,Android,优化,id,Intent From: https://www.cnblogs.com/wudisanrenzu/p/17407241.html