2017-04-20 1 views
0

내 프로젝트에는 사용자가 추가 한 숫자에 따라 프로그래밍 방식으로 Edittex를 만드는 버튼이 있으며, 각 버튼에 대한 값을 얻는 방법을 모르겠습니다. 내 질문에프로그래밍 방식으로 생성 된 Edittext의 값 얻기

어떻게 내가 프로그래밍을 만든 구성 요소의 값을받을 수있다?

미리 알려 주시기 바랍니다. 미리 알려 주시기 바랍니다.

private void setChoices() { 

     layout = (LinearLayout) findViewById(R.id.linearLayout); 
     params = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.MATCH_PARENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT); 
     params.gravity = Gravity.CENTER; 
     int marginPixel = 1; 
     int marginPixell = 5; 
     float densityy =getResources().getDisplayMetrics().density; 
     int marginDp = (int)(marginPixel * densityy); 
     int margin = (int)(marginPixell * densityy); 
     params.setMargins(marginDp, margin, marginDp, margin); 


     int num= Integer.parseInt(choicesNumberEDT.getText().toString()); 


     for (int i = 0; i < num; i++) { 

      explanationED= new EditText(this); 
      explanationED.setLayoutParams(params); 
      layout.addView(explanationED); 
      explanationED.setGravity(Gravity.TOP); 
      explanationED.setHint("أكتب هنا....."); 
      explanationED.setTextSize(14); 
      explanationED.setId(i); 
      float density = getResources().getDisplayMetrics().density; 
      int paddingDp = (int) (Const.paddingPixel * density); 
      explanationED.setBackgroundColor(Color.parseColor("#B2E3CC")); 
      explanationED.setPadding(paddingDp, paddingDp, paddingDp, paddingDp); 

     } 


    } 
+0

"각자의 가치를 얻는 방법을 모르겠다"는 의미는 무엇입니까? int num = Integer.parseInt (choicesNumberEDT.getText(). toString());가 있습니다. 사용자가 입력 한 번호를 가져옵니다. –

+0

프로그래밍 방식으로 만든 edittext를 의미합니다 –

+0

explainED.getText(). toString; 위의 몇 줄을 그랬던 것처럼 –

답변

0

동적으로 생성 된 EditTexts 값을 가져오고 싶습니다. 현재 각각의 생성에 대한 EditText의 인스턴스를 대체합니다.

 List<EditText> editTextList = new ArrayList<>(); 

     private void setChoices() { 

     layout = (LinearLayout) findViewById(R.id.linearLayout); 
     params = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.MATCH_PARENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT); 
     params.gravity = Gravity.CENTER; 
     int marginPixel = 1; 
     int marginPixell = 5; 
     float densityy =getResources().getDisplayMetrics().density; 
     int marginDp = (int)(marginPixel * densityy); 
     int margin = (int)(marginPixell * densityy); 
     params.setMargins(marginDp, margin, marginDp, margin); 


     int num= Integer.parseInt(choicesNumberEDT.getText().toString()); 


     for (int i = 0; i < num; i++) { 

      EditText explanationED= new EditText(this); 
      explanationED.setLayoutParams(params); 
      editTextList.add(explanationED); //<-------new line here 
      layout.addView(explanationED); 
      explanationED.setGravity(Gravity.TOP); 
      explanationED.setHint("أكتب هنا....."); 
      explanationED.setTextSize(14); 
      explanationED.setId(i); 
      float density = getResources().getDisplayMetrics().density; 
      int paddingDp = (int) (Const.paddingPixel * density); 
      explanationED.setBackgroundColor(Color.parseColor("#B2E3CC")); 
      explanationED.setPadding(paddingDp, paddingDp, paddingDp, paddingDp); 

     } 


    } 


private EditText getText(int position) { 
    return editTextList.get(position).getText().toString(); 
} 

또는 당신이 EditTexts의 목록을 유지하지 않으려면, 당신은 당신이 사용하여 만든 각 글고 치기에 대한 태그를 설정할 수 있습니다 :를 검색 후

editText.setTag("tag"); 

를하고 아래 코드를 사용해보십시오 사용 :

layout.findViewWithTag("tag"); 
+0

많은 thannnnnnnnks, 이것이 내가 원하는 것, 개인 EditText getText (int 위치)를 개인 문자열 getttext (int 위치)로 업데이트했다. –

+0

아무 문제 없어 @Nanamedo, enjoy! –

0

새로운 객체를 생성 루프에서 때마다, 같은 EditText 객체 explanationED에이 할당된다. 따라서 getText()에서 explanationED 개체로 언제든지 EditText의 텍스트를 얻을 수 있습니다. EditText -이 시나리오
,
는 이제 다음 목록 항목의 각 id을 제공하는 List 길이 NEditText의를 생각해 보자. 이제 ID's에서 EditText 개체의 값을 가져올 수 있습니다.

//e.g 
list.get(i).getText().toString(); //getting value via index 

//you may search for a specific Id. 
for(EditText text: list) { 
    if(text.getId() === MY_ID) { 
    // do something.. 
    } 
} 
+0

감사합니다, 삼미, 나는 배고픈 Androider의 해결책을 사용했습니다. –

관련 문제