좋아, 그래서 주어진 공간의 영역 밖으로 작동하는 활동을 만들려고 노력하고있어.계산에서 둘 이상의 Spinner 사용
사용자가 "m"의 "ft"중 하나에 치수를 입력 할 수있게하려고합니다. 답은 미터로 표시해야합니다.
지금 문제가 발생했습니다.
아래의 코드가 작동하면 문제는 프로그램에서 num1과 num2가 둘 다 사용 된 마지막 회 전자에서 선택된 것과 같다고 가정합니다. 따라서 num1에 대해 100ft를 입력 한 다음 num2에 대해 10m를 입력하면 m 단위를 마지막으로 선택하기 때문에 1000m의 답을 제공합니다.
누구든지 나를 도울 수 ...
이 지난 몇 일 동안 두통이되었습니다 ... 92.9의 답을 제공한다!?! 사전에
감사 윌
onItemSelected(), 당신은이 R.id.Spinner01 또는 R.id.Spinner02을 촉구했다 있는지 확인하기 위해) v.getId를 (사용 및 업데이트에private OnClickListener myClickListener = new OnClickListener()
{
public void onClick(View v) {
try{
a=Double.parseDouble(num1.getText().toString());
b=Double.parseDouble(num2.getText().toString());}
catch(Exception e)
{
if(num1.getText().length()==0)
{
num1.setError("please input width");
}
if(num2.getText().length()==0)
{
num2.setError("please input length");
}
}
if (opselected=="ft" && opselected1=="ft")
{c=((a * 0.0929) * (b * 0.0929));tv1.setText(Double.toString(c));}
else if (opselected=="m" && opselected1=="m")
{c=(a * b);tv1.setText(Double.toString(c));}
else if (opselected=="m" && opselected1=="ft")
{c= (a * (b * 0.0929));tv1.setText(Double.toString(c));}
else if (opselected=="ft" && opselected1=="m")
{c= ((a * 0.0929) * b);tv1.setText(Double.toString(c));}
else {tv1.setText("select units");}
//tv1 = (TextView)findViewById(R.id.TextView01);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.car);
tv1 = (TextView)findViewById(R.id.TextView01);
button01 = (Button)findViewById(R.id.Button01);
button01.setText("Display Air Volume");
button01.setOnClickListener(myClickListener);
num1 = (EditText)findViewById(R.id.EditText01);
num2 = (EditText)findViewById(R.id.EditText02);
spinOps = (Spinner)findViewById(R.id.Spinner01);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, ops);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinOps.setAdapter(adapter);
spinOps.setOnItemSelectedListener(this);
spinOps1 = (Spinner)findViewById(R.id.Spinner02);
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, ops1);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinOps1.setAdapter(adapter);
spinOps1.setOnItemSelectedListener(this);
}
public void onItemSelected (AdapterView<?> p,View v,int position,long id) {
opselected=ops[position];
opselected1=ops1[position];
tv1.setText("");
}
public void onNothingSelected(AdapterView<?> p) {
tv1.setText("");
}
위 코드를 어떻게 수정해야 하는지를 보여줄 수 있습니까? – Will