이 그림 참조 :이 같은 레이아웃을 수행 한레이아웃에서 더 많은 수의 Editext를 해결하고 그로부터 가치를 얻는 방법?
내가 안드로이드에 스도쿠를 설계 오전, 그래서 81 Editext이있다. 나는 Editext의 모든 가치를 얻고 싶다. 그래서 81 점의 활동을 선언하고 관리하기가 어렵다. 제 문제를 효과적으로 처리 할 수있는 방법을 제안 해 주시겠습니까?
이 그림 참조 :이 같은 레이아웃을 수행 한레이아웃에서 더 많은 수의 Editext를 해결하고 그로부터 가치를 얻는 방법?
내가 안드로이드에 스도쿠를 설계 오전, 그래서 81 Editext이있다. 나는 Editext의 모든 가치를 얻고 싶다. 그래서 81 점의 활동을 선언하고 관리하기가 어렵다. 제 문제를 효과적으로 처리 할 수있는 방법을 제안 해 주시겠습니까?
난 당신이 값은 같은 방법으로 배열을하고이 같은 배열에 그 값을 저장 사용 얻으려면이
EditText text1,text2,text3,text4,text5,text6,text7,text8,text9, text21,text22,text23,text24....text 99;
EditText[] fields={text1,text2,text3,text4,text5,text6,text7,text8,text9, text21,text22,text23,text24....text 99};
//Give your edittext ids in ids array like this
int ids[]={R.id.text1,R.id.text2,R.id.text3.....R.id,text99};
int values[9][9]={};
for(int i=0;i<fiends.length;i++)
{
fields[i]=(EditText)findViewById(ids[i]);
}
처럼 EDITTEXT의 배열을 사용하는 것이 좋습니다 것입니다. for 루프를 사용하여 텍스트 필드에서 값을 가져 와서 값 배열에 선언 된대로 2 차원 배열에 저장하십시오. 나는 당신이 진짜로 알고 싶은 것을 나머지를 코딩하는 방법을 알고 있다고 생각한다. 나는 나머지를 게시 할 것이다. 제 생각에 .. 당신에게 도움이되기를 바랍니다.
편집 문구를 동적으로 작성하십시오.
반복 할 때마다 ed
변수를 다시 쓰고 있으므로 루프가 끝나면 ed
은 마지막으로 만든 EditText 인스턴스 만 가리 킵니다. 모든 EditTexts에
EditText ed;
List<EditText> allEds = new ArrayList<EditText>();
for (int i = 0; i < count; i++) {
ed = new EditText(Activity2.this);
allEds.add(ed);
ed.setBackgroundResource(R.color.blackOpacity);
ed.setId(id);
ed.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
linear.addView(ed);
}
이제 allEds
목록 홀드 참조를, 그래서 당신은 그것을 반복하고 모든 데이터를 얻을 수 있습니다 :
당신은 모든 EditTexts에 대한 모든 참조를 저장해야합니다.
점점 데이터
String[] strings = new String[](allEds.size());
for(int i=0; i < allEds.size(); i++){
string[i] = allEds.get(i).getText().toString();
}
참고 :
이 아닌 당신의 디자인은 어떤 정확한 결과를 얻기 위해이 절차를 수행 changes.but가있을 수 있습니다 발생합니다. 나는 당신이 two for loops
을 사용하여 edittext를 gridview에 가져와야한다고 생각합니다.
이 방법을 시도 할 수 있습니다 :
public static ArrayList<EditText> m_arr_edit= = new ArrayList<EditText>(); RelativeLayout p_rl_layout=new RelativeLayout(m_context); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); LinearLayout m_ll_timelayout = new LinearLayout(m_context); m_ll_timelayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); for (int i = 0; i < p_intervals; i++) { EditText m_edit = new EditText(m_context); m_edit.setLayoutParams(new LinearLayout.LayoutParams(90, LayoutParams.WRAP_CONTENT)); m_edit.setText("Set Text"); m_edit.setId(i); m_arr_edit.add(m_btn); m_ll_timelayout.addView(m_btn); } layoutParams.addRule(RelativeLayout.BELOW); p_rl_layout.addView(m_ll_timelayout, layoutParams);
내가 당신을 도움이되기를 바랍니다.
고마워요! !! :) – jenuine