首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >第二个活动的按钮跳转到不应该是的主要活动

第二个活动的按钮跳转到不应该是的主要活动
EN

Stack Overflow用户
提问于 2021-01-16 04:53:42
回答 3查看 92关注 0票数 0

我是Android开发公司的新成员,是我最后一年的项目。我遇到了一些问题,即第二个活动,即父活动页提交按钮不能正常工作,因为它应该在移到另一个活动页之前进行错误检查。

主Activity.java代码

代码语言:javascript
运行
复制
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
//DEFINE WHICH BUTTON TO CLICK ON
Button ButtonParent;
Button ButtonKid;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ButtonParent=findViewById(R.id.buttonParent);
    ButtonKid=findViewById(R.id.buttonKid);
    ButtonParent.setOnClickListener(this);
    ButtonKid.setOnClickListener(this);
}
@Override
public void onClick(View view) {
        if (view==ButtonParent) {
            Intent intent_Parent = new Intent(MainActivity.this, ParentLogin.class);
            intent_Parent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent_Parent);
        }else if(view==ButtonKid) {
            Intent intent_Kid = new Intent(MainActivity.this, KidLogin.class);
            intent_Kid.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent_Kid);
        }
    }
}

父Login.java代码

代码语言:javascript
运行
复制
public class ParentLogin extends AppCompatActivity implements View.OnClickListener{
EditText pName;
EditText pNRIC;
Button ParentLogin;
Button ParentRegister;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_parent_login);

    pName = findViewById(R.id.LoginParentName);
    pNRIC = findViewById(R.id.ParentNRIC);

    ParentLogin=findViewById(R.id.LoginParentSubmit);
    ParentRegister=findViewById(R.id.LoginParentRegister);
    ParentLogin.setOnClickListener(this);
    ParentRegister.setOnClickListener(this);
}
@Override
public void onClick(View view) {
    if (view == ParentLogin) {

        String ParentName = pName.getText().toString().trim();
        String ParentNRIC = pNRIC.getText().toString().trim();
        boolean res = ParentDAO.checkParent(ParentName, ParentNRIC);
        if ((TextUtils.isEmpty(ParentName))||!(TextUtils.isEmpty(ParentNRIC))) {
            Toast toast= Toast.makeText(ParentLogin.this, "Please fill in all the empty columns which are available", Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL,0,0);
            toast.show();

        } else {
            if (res) {
                Toast.makeText(ParentLogin.this, "Login Successfully", Toast.LENGTH_SHORT).show();
                Intent intent_parentActivity = new Intent(ParentLogin.this, ParentActivity.class);
                intent_parentActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent_parentActivity);
            } else {
                Toast.makeText(ParentLogin.this, "Login not Successfully", Toast.LENGTH_SHORT).show();
            }
        }
    }else if(view==ParentRegister) {
        Intent intent_parentRegister = new Intent(ParentLogin.this, ParentRegistration.class);
        intent_parentRegister.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent_parentRegister);
    }
}
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-01-16 06:38:39

有两种方法可以做到。

1.

代码语言:javascript
运行
复制
finish();

finish命令完成您所处位置的活动。我的意思是,如果您在活动a中,并且设置了到活动b的意图,那么,如果将finish()命令设置在意图下面,而不是按后退按钮,则不会重定向到活动a。

注:如果在活动a之前有活动,那么您将被重定向到该活动。如果使用finish命令

2.

代码语言:javascript
运行
复制
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

它清除了你所有的活动。

票数 0
EN

Stack Overflow用户

发布于 2021-01-16 04:59:11

尝试将Intent.FLAG_ACTIVITY_CLEAR_TOP)替换为:

代码语言:javascript
运行
复制
Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK
票数 0
EN

Stack Overflow用户

发布于 2021-01-16 06:24:54

正如您所说的,活动是在不检查错误的情况下更改的,所以在启动新活动之前请检查条件。

如果您知道如何执行

  1. ,则可以进行调试,否则容易的选项是放置Log.e("check ",“-1”);在整个条件下,在每一行中都有语句,您将发现损坏的行代码

检查这个条件

代码语言:javascript
运行
复制
if ((TextUtils.isEmpty(ParentName))||!(TextUtils.isEmpty(ParentNRIC)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65746618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档