전문가의 조언이 필요합니다. 나는 방금 안드로이드 프로그래밍을 시작했고 마침내 내 "Hello World"가 원하는 것을 얻었는데, 나는 마치 개념을 이해하는 것보다 내 방식대로 bludgening하는 것처럼 을 느낀다.자원을 전달하는 가장 좋은 방법은 무엇입니까?
3 개의 EditText 상자를 만들었습니다. 그 아래 나는 세 개의 스피너를 만들었습니다. 회 전자에서 번호를 선택하면 해당 편집 텍스트 상자에 나타납니다. 회 전자 1은 EditText 1, 회선 2는 EditText 2, 회 전자 3은 에 연결됩니다. 3.이 작업을 수행하는 데 지옥이 있습니다. 일부는 청소를해야합니까. 내 시작 클래스에서
는 I :
EditText [] pick_nums = new EditText[3];
pick_nums[0] = (EditText) findViewById(R.id.r1c1);
pick_nums[1] = (EditText) findViewById(R.id.r1c2);
pick_nums[2] = (EditText) findViewById(R.id.r1c3);
Spinner test1 = (Spinner) findViewById(R.id.spin_pick_num1);
Spinner test2 = (Spinner) findViewById(R.id.spin_pick_num2);
Spinner test3 = (Spinner) findViewById(R.id.spin_pick_num3);
는 // 나는 스피너를 초기화하는 클래스를 만들었습니다.
// 해당 EditText 상자에 번호를 입력하는 클래스를 만들었습니다. 나는 사용자가 버튼을 눌러 을 채우는 것을 피하고 싶었고, 세 개의 숫자가 들어간 후에는 버튼을 누르지 않고도 그걸로 뭔가를 할 것이다. 나는 그것이 미봉책 어색 얻을 생각하는 곳 // 여기
Handle_Picks hp = new Handle_Picks(g, pick_nums);
입니다. Handle_Picks가 으로 올바르게 작동하도록하려면 컨텍스트, EditTexts 배열을 설정하는 메서드를 만들고 Handle_Picks hp 클래스에 대한 참조를 생성했습니다. Spinner_Listener 클래스에서
Spinner_Listener listen = new Spinner_Listener();
listen.set_context(g, pick_nums, hp);
test1.setOnItemSelectedListener(listen);
test2.setOnItemSelectedListener(listen);
test3.setOnItemSelectedListener(listen);
//
public class Spinner_Listener implements OnItemSelectedListener
static Handle_Picks hp1; //set in a method
private String num;
String v;
String spin_id;
int vv;
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id)
{
//To make this work I had to find the name of the spinner that was
//used so I could correlate it with the right EditText
vv = parent.getId();
v = parent.getResources().getResourceName(vv);
spin_id = parent.getResources().getResourceEntryName(vv);
setNum(parent.getItemAtPosition(pos).toString());
}
public void setNum(String s)
{
num = s;
hp1.handle_nums(spin_id, num);
}
// 마지막으로 클래스 Handle_Picks I :
public class Handle_Picks extends Activity
{
static Context theContext;
EditText [] et;
String spin_num;
// constructor
Handle_Picks(Context f, EditText[] array)
{
theContext = f;
et = array;
}
public void handle_nums(String id, String aNumber)
{
spin_num = id;
if (spin_num.equalsIgnoreCase("spin_pick_num1"))
et[0].setText(aNumber);
else if (spin_num.equalsIgnoreCase("spin_pick_num2"))
et[1].setText(aNumber);
else if (spin_num.equalsIgnoreCase("spin_pick_num3"))
et[2].setText(aNumber);
}
통과 또는 참조 자료 다양한 클래스 주위에 더 좋은 방법이 있나요? Spinner_Listener 클래스의 Handle_Picks를 사용하기 전에 Context 및 EditText 배열을 Handle_Picks 클래스 에 전달해야합니다. 위험한 것 같습니다.
더 좋은 방법은 무엇입니까?