当字段的可见性更改时,验证“编辑”字段

时间:2014-05-22 13:21:58

标签: android validation

尝试验证3个编辑字段。  首先,字段1是可见的,并且在1字段2中输入文本后变得可见(在点击添加更多按钮之后),依此类推。 现在我一直坚持现场验证。

以下是我的尝试:

获取字段:

final EditText status = (EditText)layout.findViewById(R.id.edit_field);
final EditText status2 = (EditText)layout.findViewById(R.id.edit_field1);
final EditText status3 = (EditText)layout.findViewById(R.id.edit_field2);

监听器:

status.addTextChangedListener(new TextWatcher() {                               

    @Override
    public void afterTextChanged(Editable s) 
    {
         enableSubmitIfReady();
    }

    public void enableSubmitIfReady() 
    {
       boolean Ready =status.getText().toString().length()>0;

       if (Ready) 
       {
            ADD_MORE.setVisibility(View.VISIBLE);
            ADD_MORE.setEnabled(true);
       } else {
            ADD_MORE.setEnabled(false);  
       }
    }
});

status2.addTextChangedListener(new TextWatcher() {

    @Override
    public void afterTextChanged(Editable s) 
    {
        enableSubmitIfReady();
    }

    public void enableSubmitIfReady() 
    {
        boolean isReady =status.getText().toString().length()>0;

        if (isReady) {
            ADD_MORE.setVisibility(View.VISIBLE);
            ADD_MORE.setEnabled(true);
        } else {
            ADD_MORE.setEnabled(false);
        }

    }
});

status3.addTextChangedListener(new TextWatcher() {
    @Override
    public void afterTextChanged(Editable s) 
    {
        ADD_MORE.setVisibility(View.GONE);
        disable.setVisibility(View.VISIBLE);
    }
});

                ADD_MORE.setOnClickListener(new OnClickListener() 
                {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if(status.getText().toString().length()>0)
                        {   
                        second_layout.setVisibility(View.VISIBLE);
                        }
                         if(status2.getText().toString().length()>0)
                        {
                        third_layout.setVisibility(View.VISIBLE);

                        }

                    }
                });

               OK.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) 
                {
                    String status_message = status.getText().toString();
                    String status_message2 = status2.getText().toString();
                    String status_message3 = status3.getText().toString();
                    Boolean isVisible,isvisible ;
                    isVisible = second_layout.isShown();
                    isvisible = third_layout.isShown();
                    if(status_message.matches(""))
                    {
                        MessageDialog.showMessage("Alert!",
                                "Please enter atleast one charcter", VideoPlaybackActivity.screen);
                        status.requestFocus();
                    }
                    else if(status_message2.matches("") & isVisible.equals("true"))
                    {
                        MessageDialog.showMessage("Alert!",
                                "Please enter atleast one charcter", VideoPlaybackActivity.screen);
                        status2.requestFocus();
                    }
                    else if(status_message3.matches("") & isvisible.equals("true"))
                    {
                        MessageDialog.showMessage("Alert!",
                                "Please enter atleast one charcter", VideoPlaybackActivity.screen);
                        status3.requestFocus();
                    }
                    else
                    {
                    alertDialog.dismiss();
                    Intent i=new Intent(getApplicationContext(),Tag.class);
                    startActivity(i);
                    overridePendingTransition(R.anim.animation,R.anim.animation2);  
                    }
                }
            });

更多请看图片....(2和3最初是看不见的) enter image description here

1 个答案:

答案 0 :(得分:0)

动态添加编辑文字字段

//this is your main layout element where you want to add new edittext
LinearLayout ll = (LinearLayout)findViewById(R.id.mycontent); 
LayoutInflater layoutInflater =(LayoutInflater) getBaseContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
//This what you want to add so creat new layout for edittext
EditText addView = layoutInflater .inflate(R.layout.addlayout, null); 
//call this method on button click
ll.addView(addView);

这是新的Edittext布局(addlayout):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sepmain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="Add"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="19dp"
    android:layout_toRightOf="@+id/textView1"
    android:text="Tag"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
    android:id="@+id/new"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/textView2"
    android:ems="10" >

    <requestFocus />
</EditText>

有关了解动态视图的更多信息,请查看以下链接: http://www.mysamplecode.com/2011/10/android-dynamic-layout-using-xml-add.html