需要你的专家在那里的建议。我刚刚开始使用Android 编程,虽然我终于得到了我想要的“Hello World”所要做的事情,但我觉得 好像我在扼杀我的方式而不是理解概念。传递资源的更好方法是什么?
我创建了三个EditText框。在那些我创造了三个Spinners之下。在Spinner中选择一个 数字,它将显示在相应的EditText框中。 微调1相关的EditText 1,微调2到EditText 2和微调3到 EditText 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);
//我创建了一个类来初始化微调。
Context g = getApplicationContext();
Initialize_stuff spin1 = new Initialize_stuff(test1, g);
Initialize_stuff spin2 = new Initialize_stuff(test2, g);
Initialize_stuff spin3 = new Initialize_stuff(test3, g);
//我创建了一个类,把数字放在相应的EditText框中。 我想避免让用户按下一个按钮来填充 ,并且一旦有三个数字在,我会与他们做一些事情,而不必按 按下按钮。
Handle_Picks hp = new Handle_Picks(g, pick_nums);
//这里是我认为它会变得笨拙和尴尬的地方。为了使Handle_Picks正确工作 我创建了一个方法来设置上下文,一个EditTexts数组和一个Handle_Picks hp类的引用。
Spinner_Listener listen = new Spinner_Listener();
listen.set_context(g, pick_nums, hp);
test1.setOnItemSelectedListener(listen);
test2.setOnItemSelectedListener(listen);
test3.setOnItemSelectedListener(listen);
//在Spinner_Listener类
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我:
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);
}
有没有更好的方式来传递或参考资料各地的各种类? 必须将Context和数组EditText传递给类Handle_Picks 才能使用类Spinner_Listener中的Handle_Picks看起来不正确。 似乎有点危险。
什么是更好的方法?