Android:上一页按钮,不会丢失数据

时间:2016-02-12 13:29:25

标签: android android-activity android-button

我需要一些帮助来实现以下目标:

当我点击我的上一个按钮时,我希望应用程序转到上一页而不会丢失我的数据。我已经在应用程序中添加了上一个按钮,但是当我单击它时,我的应用程序将转到主页而不是上一页。

我的代码:

 Button next,previous;
        next = (Button)findViewById(R.id.work_next);
        previous = (Button)findViewById(R.id.work_previous);
        previous.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intentSignUP = new Intent(getApplicationContext(), filldetails.class);
                startActivity(intentSignUP);
                finish();
            }
        });

        next.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                boolean allValues = true;

                String comp="",desg="",fromdate="",todate="",role_d="",technologies_used="";

                if(companyName.getText().toString().equals(""))
                {
                    allValues = false;
                    Toast.makeText(getApplicationContext(), "Please enter all the fields",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    comp= companyName.getText().toString();
                    //Toast.makeText(getApplicationContext(), "Please enter all the fields",Toast.LENGTH_SHORT).show();
                }

                if(designation.getText().toString().equals(""))
                {
                    allValues = false;
                    Toast.makeText(getApplicationContext(), "Please enter all the fields",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    desg = designation.getText().toString();
                    //Toast.makeText(getApplicationContext(), "Please enter all the fields",Toast.LENGTH_SHORT).show();
                }

                if(fromDate.getText().toString().length()<8 || fromDate.getText().toString().length()>10 ||fromDate.getText().toString().equals(""))
                {
                    allValues = false;
                    Toast.makeText(getApplicationContext(),"Please enter valid Date",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    fromdate = fromDate.getText().toString();
                }
                if(toDate.getText().toString().length()<8 || toDate.getText().toString().length()>10 ||toDate.getText().toString().equals(""))
                {
                    allValues = false;
                    Toast.makeText(getApplicationContext(),"Please enter valid Date",Toast.LENGTH_SHORT).show();
                }
                else
                {
                   todate = toDate.getText().toString();
                }

                if(role_desc.getText().toString().equals(""))
                {
                    allValues = false;
                    Toast.makeText(getApplicationContext(), "Please enter all the fields",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    role_d = role_desc.getText().toString();
                }

                if(technologiesUsed.getText().toString().equals(""))
                {
                    allValues = false;
                    Toast.makeText(getApplicationContext(), "Please enter all the fields",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    technologies_used = technologiesUsed.getText().toString();
                }
                if(allValues)
                {
                    Intent moveToNext = new Intent(getApplicationContext(),skills.class);
                    moveToNext.putExtra("comp_name",comp);
                    moveToNext.putExtra("desc",desg);
                    moveToNext.putExtra("role_d",role_d);
                    moveToNext.putExtra("from_date",fromdate);
                    moveToNext.putExtra("to_date",todate);
                    moveToNext.putExtra("technologies_used",technologies_used);
                    moveToNext.putExtra("iscurrent",isCurrent.isChecked());
                    moveToNext.putExtra("aboutme",getIntent().getStringExtra("aboutme"));
                    moveToNext.putExtra("address",getIntent().getStringExtra("address"));
                    startActivity(moveToNext);

                    finish();
                }
                else
                {
                    Toast.makeText(getApplicationContext(), "Please provide all values", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

1 个答案:

答案 0 :(得分:0)

您不需要开始活动以转到之前的活动(如果您还没有调用onClick),只需关闭当前活动,它就会转到之前的活动,数据将完好无损。

像这样更改previous @Override public void onClick(View v) { finish(); } 按钮的方法

finish()

注意:如果您通过调用 private Rule MatchRule(string cond) { var results = (from x in rules where x.Cond == cond group x by new { x.Tree.Val , r = x.Tree.Right.Val, l = x.Tree.Left.Val} into g select new { rule = ???, Count=g.Count(), }).OrderByDescending(x => x.Count).ToList(); return results[0].rule; } 关闭了之前的活动,则删除该代码,否则如果不修改该活动中的代码,数据将无法完整。