2013-11-28 50 views
0

最初,我想默认显示2 EditText,如果用户想要添加更多EditText,他们应该使用一个按钮,允许它们显示多达3个EditText和一个隐藏按钮,如果用户不想显示EditTextAndroid:在按下按钮时显示和隐藏Editext

关于如何继续这样做的任何建议?

inputOptionName1 = (EditText) findViewById(R.id.optionName1); 
    inputOptionName2 = (EditText) findViewById(R.id.optionName2); 
    inputOptionName3 = (EditText) findViewById(R.id.optionName3); 
    inputOptionName4 = (EditText) findViewById(R.id.optionName4); 
    inputOptionName5 = (EditText) findViewById(R.id.optionName5); 

现在这是我的代码只是显示了5个EditTexts ...

我必须把这个ArrayList和做if和else?

回答

0

试试这个..

inputOptionName1.setVisibility(View.VISIBLE); 
inputOptionName2.setVisibility(View.VISIBLE); 
inputOptionName3.setVisibility(View.GONE); 
inputOptionName4.setVisibility(View.GONE); 
inputOptionName5.setVisibility(View.GONE); 

在你JAVA全球

int count = 2; 

在你JAVA的onCreate()

btn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       if(count >= 5) 
       { 
        Toast.makeText(getBaseContext(), "No more EditText Box to add.", Toast.LENGTH_SHORT).show(); 
       } 
       else 
       { 
        count++; 

        if(count == 3) 
        inputOptionName3.setVisibility(View.VISIBLE); 
        else if(count == 4) 
        inputOptionName4.setVisibility(View.VISIBLE); 
        else if(count == 5) 
        inputOptionName5.setVisibility(View.VISIBLE); 
       } 
      } 
     }); 

cancel.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        if(count <= 2) 
        { 
         Toast.makeText(getBaseContext(), "No more EditText Box to cancel.", Toast.LENGTH_SHORT).show(); 
        } 
        else 
        { 
        if(count == 3) 
        inputOptionName3.setVisibility(View.GONE); 
        else if(count == 4) 
        inputOptionName4.setVisibility(View.GONE); 
        else if(count == 5) 
         inputOptionName5.setVisibility(View.GONE); 

        count--; 
        } 
       } 
      }); 
+0

我怎么循环在一起?就像,如果只有两个选项可见,则只允许用户添加另一个选项,但如果选项3可见,请删除或添加其他选项。 – Rager58

+0

@ Rager58检查我的编辑.. – Hariharan

+0

你是什么意思的Java全球? – Rager58

0

在onCL一个按钮的ICK(),你可以不喜欢

inputOptionName1.setVisibility(View.INVISIBLE); 
inputOptionName2.setVisibility(View.INVISIBLE); 
inputOptionName3.setVisibility(View.INVISIBLE); 
inputOptionName4.setVisibility(View.INVISIBLE); 
inputOptionName5.setVisibility(View.INVISIBLE); 
0

能否请您试试这个:位置对你很重要,你希望增加动态高达3个EDITTEXT启动形式2的EditText始终visiable。您可以选择想要的View.GONEView.INVISIBLE

//在XML

inputOptionName1.setVisibility(View.VISIBLE); 
inputOptionName2.setVisibility(View.VISIBLE); 
inputOptionName3.setVisibility(View.GONE); 
inputOptionName4.setVisibility(View.GONE); 
inputOptionName5.setVisibility(View.GONE); 

//在你的Java代码 -

public static int position = 2; 

btn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       if(position < 5) 
       { 
       inputOptionName+(++position).setVisibility(View.VISIBLE); 
       } 
      } 
     }); 

cancle.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
       if(position > 2) 
       { 
        inputOptionName+(--position).setVisibility(View.GONE); 
       } 
       } 
      }); 
+0

这是因为死代码 – Rager58

+0

你需要修改'inputOptionName +( - position)'和'inputOptionName +(++ position)'来获得它的可执行文件。 – Yup

+0

是的,它显示语法错误 – Rager58