当前位置: 首页 > 知识库问答 >
问题:

当所有字段都不为空时,转到其他活动

岳和泽
2023-03-14

这个活动我有1个活动,3个片段。

在3个片段中,当复选框被选中或edittext不为空时,我有布尔值返回true。

当EditText不为空且我的复选框处于选中状态时,我想禁用此按钮。。

当我添加了像sexMan这样的东西。isChecked()到方法EditTextCompleted()我的应用程序崩溃。。。。

那么我如何将这些条件连接到一个地方呢?

复选框侦听器

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

    if (isChecked){
        mSendInfoFromBmrFragment.sexChecked(true);
        switch (buttonView.getId()){

            case R.id.sexMan:
                mSendInfoFromBmrFragment.sex(BmrCalculation.SEX_MAN);
                sexMan.setChecked(true);
                sexWoman.setChecked(false);
                break;

            case R.id.sexWoman:
                sexMan.setChecked(false);
                sexWoman.setChecked(true);
                mSendInfoFromBmrFragment.sex(BmrCalculation.SEX_WOMAN);
                break;

编辑文本监听器

@在TextChanged(可编辑的)之后覆盖公共无效{

    if ( s == weightEditText.getEditableText()){
        mSendInfoFromBmrFragment.getweight(Integer.parseInt(s.toString()));
        mWeight = Integer.parseInt(s.toString());
    } else if ( s == heightEditText.getEditableText()) {
        mSendInfoFromBmrFragment.getheight(Integer.parseInt(s.toString()));
        mHeight = Integer.parseInt(s.toString());
    } else if ( s == ageEditText.getEditableText()){
        mSendInfoFromBmrFragment.getage(Integer.parseInt(s.toString()));
        mAge = Integer.parseInt(s.toString());
    }

    if ( (!(weightEditText.getEditableText().toString().equals("")) && !(heightEditText.getEditableText().toString().equals("")) && !(ageEditText.getEditableText().toString().equals("")))) {
        mSendInfoFromBmrFragment.editTextComplete(true);
    } else {
        mSendInfoFromBmrFragment.editTextComplete(false);
    }

}

接口

public interface sendInfoFromBmrFragment {

        public void getheight(int height);
        public void getweight(int weight);
        public void getage(int age);
        public void editTextComplete(boolean editTextComplete);
        public void sex(String sex);

    }

共有3个答案

白昊东
2023-03-14

如果你有edittext,你可以将textchangelistener添加到它,如果你有复选框,你可以将listener添加到它,在listener中你可以检查验证。根据验证,您可以为下一个活动启用或禁用按钮。您可以将该按钮设置为静态,以便从其他类访问。

在每个侦听器中,您可以调用一个公共静态方法,每次都检查所有验证,如果它满足,则方法将返回true,您可以启用按钮。

孙宏壮
2023-03-14

您可以将回调添加到复选框中,然后它们都为真,您需要在父活动中调用方法(例如发送活动片段ID和布尔值)。要从活动中调用方法,您需要使用下一个代码

((ParentActivity)getActivity()).yourMethod();

然后活动从所有片段中接收到所有布尔值,您需要更改按钮可见性。

盛琪
2023-03-14

对于单选按钮,如果您知道它们的数量并且它们是静态的,则可以声明一个数组,如下所示:

 public Boolean AllRadiosAreChecked;
 private Boolean Checked[] = 
  {
      false, // sexMan is checked ?
      false   // sexWoman is checked ?
   };

然后,在同一个活动中ovverder OnCheckedChanged

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

    if (isChecked){
        switch (buttonView.getId()){

            case R.id.sexMan:
                 Checked[0]=true;
                 break;

            case R.id.sexWoman:
                Checked[1]=true;
                break;

然后,如果选中了所有单选按钮,则可以在任何地方选中:

                AllRadiosAreChecked=true;
                for (int i = 0; i < 2; i++)
                {
                    if (!Checked[i])
                    {
                        AllRadiosAreChecked= false;
                    }
                }
                if(!AllRadiosAreChecked){

                    // NOT all radio buttons are checked
                }
                else{
              // All radio buttons are checked enter code here

                }

必须向组无线电声明阵列中的此条件。

祝你好运

 类似资料:
  • 问题内容: 如何运行选择所有非null的MySQL查询?就像 我只需要删除所有内容即可吗? 问题答案: 您必须在每列上明确说明条件,例如

  • 我有一个CloudKit应用程序,它基本上是一个带有一个额外功能的主细节设置。任何详细信息对象都可以标记为ActiveNote。当应用程序在iPad上时,只显示这个ActiveNote(没有用户交互)。该应用程序包括通知和订阅,所有数据都在专用数据库的自定义区域中。该应用程序运行良好,但有一个例外。 只有两种记录类型。所有数据都以cnote类型存储。当一个细节项目被选择显示在iPad上时,我会将该

  • 问题内容: 我使用并且有以下内容; 验证说,但问题是该字段是 可选的 。因此,当用户将其留空时,也会显示相同的错误消息。 因此,我想做的是仅在字段不为空时验证。如果该字段为空,则跳过该字段的验证 问题答案: 我建议您不要使用,而是使用 主要原因是我们显示了要限制用户的一组值的消息,在此情况下,您的条件消息中显示了您不想限制的值。 因此,您想限制用户输入除空格和数字之外的其他任何内容,为此输入一个正

  • 这个想法的利弊是什么? 注: 请不要给我片段和活动的链接。 null null

  • 我有一个如下所示的查询:,它返回所有实体(当前为15个)。我只想选择某些字段来提高查询的内存效率(有很多我不需要的嵌入实体)。 我有2个多对一关系,a和b,其中一个通常为空,另一个有一个值。如果执行,我将得到a不为null的10个结果,而执行时,我将得到b不为null的另外5个结果。但是,如果执行,则返回0个结果。我假定它全部为15,并将其作为返回。为什么会发生这种情况,我是否可以更改它,以便返回

  • 我正在使用Jackson,我有一些JSON模式对象设置如下: 我试图忽略所有为空或空的字段,这工作正常。但我也想忽略字段全部为空或空的对象。例如: 生成的 JSON 字符串是 {“name”:“John Doe”,“child”:{},“sibling”:{}},但我希望它是 。创建 时需要初始化和,所以我不想更改它。有没有办法让杰克逊使用自定义序列化程序将具有空字段的对象视为空?我已经看到了对特