2011-12-14 5 views
2

'제출'버튼을 누른 후 사용자 입력을 표시하려고합니다. 제출 버튼을 누른 후 양식을 만들고 기본 유효성 검사 (텍스트, 숫자, 문자열 길이 등)에 대한 코드를 추가했습니다. 이 절은 올바르게 작동합니다.버튼 입력 후 사용자 입력 표시

필드가 모두 유효한 경우 제출 버튼이 새보기로 입력을 표시하도록합니다. 또한 사용자가 표시된 입력 아래에서 정보를 편집 할 수있는 기능을 추가하려고합니다. onClick 액션에서 새 뷰를 만드는 방법과 뷰에 변수를 보내는 방법을 주로 어디에서 시작해야할지 모르겠습니다. 이를 위해 새로운 클래스와 XML 파일을 만들어야합니까? 그렇다면이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

편집 :

public void sendFeedback(View button) { 
    final EditText firstnameField = (EditText)this.findViewById(R.id.EditTextFirstName); 
    String firstname = firstnameField.getText().toString(); 
    int fnlen=firstname.length(); 
    if (fnlen<=0){ 
     firstnameField.setError("Enter your first name"); 
    } 

답변

0

당신은 일반 레이아웃에 그 사용자 입력 필드를 추가하고 android:visibility="INVISIBLE"처럼 보이지 않는 그것의 가시성을 설정할 수 있습니다. 그런 다음 처음에는 사용자에게 표시되지 않습니다.

코드에서 가시성을 다시 VISIBLE로 설정하면 해당보기가 나타납니다.

findViewById(R.id.yourinvisibleview).setVisibility(View.VISIBLE); 
0

Android 개발자에 대한 지식이있는 한 새로운 활동을 만들어서 시작하려는 의도를 부여하기 만하면됩니다. 당신이 생성자를 사용하고 새로운 활동에 값을 전달의 클래스 (활동)의 개인 또는 공용 속성

+0

값을 전달하는 데 생성자를 사용하면 afaik가 작동하지 않습니다. 인센티브 엑스트라를 사용하여 가치를 전달해야합니다. 그러나 이것은 실행 가능한 솔루션입니다. –

+0

안드로이드 개발팀에서 그다지 좋지 않습니다. : D 저는 iOS 유형에 더 가까우며, 울타리의 측면에서 훨씬 더 간단합니다. – Armand

+0

코드로 이전 게시물을 편집했습니다. 의도 액션을 어디에 추가합니까? 그것이 그 기능이나 새로운 기능 안에 있을까요? – mkyong

0

에 전달할 값을 지정할 수 있습니다 새로운 클래스 (활동)에 값을 전달에 관해서는

당신 의도를 사용해야합니다.

Intent intent = new Intent(MyActivity.this,NextActivity.class); 
intent.putExtra(key1,value1); 
intent.putExtra(key2,value2); 

..

및 GetData의로 NextActivity에

는 의도를 확인 Intents에 대한 자세한 내용은

getIntent().getStringExtra(key1); // for String values 
getIntent().getBooleanExtra(key2,false); // for Boolean values 

를 사용합니다.

+0

이것이 지금 구현하고 있습니다. 일부 자습서에는 'AndroidManifest.xml'파일이 나와 있습니다. 나는 그것을 본다. 그러나 그것을 전혀 바꿀 필요가 있니? – mkyong

+0

시작된 새 활동을 추가하는 경우이 활동을 매니페스트에 추가해야합니다. –

0

첫 번째 해결책 : 하나의 활동과 하나의 xml 레이아웃을 사용합니다. 와 레이아웃 XML에서 추가 두 개의 버튼 (편집 등 VALIDATE) : 제출 OnClickListener를에서

android:visibility="gone" 

, 단순히 같은 모든 편집 가능한 글고 치기가 편집 할 수 있도록 :

((EditText) findViewById(R.id.date)).setKeyListener(null); 

와 만드는 버튼이 보이지 않는 제출 및 편집 가시 유효성을 확인

((Button) findViewById(R.id.submit)).setVisibility(View.GONE); 
((Button) findViewById(R.id.edit)).setVisibility(View.VISIBLE); 
((Button) findViewById(R.id.validate)).setVisibility(View.VISIBLE); 

을 편집 OnClickListener를, 당신은 되돌릴 :

KeyListener keyListener = new KeyListener() { 

       @Override 
      public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) { 
       // TODO Auto-generated method stub 
       return false; 
      } 

      @Override 
      public boolean onKeyOther(View view, Editable text, KeyEvent event) { 
       // TODO Auto-generated method stub 
       return false; 
      } 

      @Override 
      public boolean onKeyDown(View view, Editable text, int keyCode, 
        KeyEvent event) { 
       // TODO Auto-generated method stub 
       return false; 
      } 

      @Override 
      public int getInputType() { 
       // TODO Auto-generated method stub 
       return 0; 
      } 

      @Override 
      public void clearMetaKeyState(View view, Editable content, int states) { 
       // TODO Auto-generated method stub 

      } 
     }; 

    ((EditText) findViewById(R.id.date)).setKeyListener(keyListener); 
    ... 
    ((Button) findViewById(R.id.submit)).setVisibility(View.VISIBLE); 
    ((Button) findViewById(R.id.edit)).setVisibility(View.GONE); 
    ((Button) findViewById(R.id.validate)).setVisibility(View.GONE); 

그리고 VALIDATE OnClickListener에서 실제 제출을 수행합니다.

2 솔루션 : 당신은 단지 값을 표시하기 위해, 새로운 활동과 새로운 레이아웃을 만들 수 있습니다.이 같은 의도에 의해 두 번째 활동에 값을 전달 :

String data = "somedata"; 
Intent intent = new Intent(this, YourSecondActivity.class); 
intent.putExtra("firstData", data); 
startActivity(intent); 

당신은 다음과 같이 두 번째 활동에서 데이터를 검색이 도움이

Bundle extras = getIntent().getExtras(); 
String data = extras.getString("firstData"); 

희망을.