Java 旋转器与变频器的应用
我正在创建converter(distance)4 Android。我的想法是这样做:Java 旋转器与变频器的应用,java,android,spinner,converter,Java,Android,Spinner,Converter,我正在创建converter(distance)4 Android。我的想法是这样做: EditText-用户输入值f.e.40 两个微调器-第一个设置起始单位,第二个设置目标单位f.e.第一个[cm]秒[m] 带结果的文本视图 计算按钮 我用计算值做函数,问题是如何选择单位 这是我不起作用的代码 spinnerP = (Spinner) findViewById(R.id.spinnerPocz); ArrayAdapter<CharSequence> adapterP =
spinnerP = (Spinner) findViewById(R.id.spinnerPocz);
ArrayAdapter<CharSequence> adapterP = ArrayAdapter.createFromResource(this, R.array.odlegloscArray, R.layout.support_simple_spinner_dropdown_item);
adapterP.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
spinnerP.setAdapter(adapterP);
spinnerP.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//Toast.makeText(getBaseContext(), parent.getItemIdAtPosition(position) + " selected", Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinnerD = (Spinner) findViewById(R.id.spinnerDoc);
ArrayAdapter<CharSequence> adapterD = ArrayAdapter.createFromResource(this, R.array.odlegloscArray, R.layout.support_simple_spinner_dropdown_item);
adapterD.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
spinnerD.setAdapter(adapterD);
spinnerD.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (spinnerP.getItemAtPosition(position) == 0) {
switch (position) {
case 0:
Toast.makeText(getApplicationContext(), "zmień wartość docelową", Toast.LENGTH_SHORT).show(); //units the same
break;
case 1:
btnOblicz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
metryNaKm(); //meters to km
}
});
break;
case 2:
btnOblicz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
metryNaCm(); //meters to cm
}
});
break;
case 3:
btnOblicz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
metryNaCale(); //meters to inch
}
});
break;
//etc.
//then there is
else if (spinnerP.getItemAtPosition(position) == 1) {
switch (position) {
case 0:
btnOblicz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
kilometryNaM(); //km to meters
//etc
spinnerP=(Spinner)findviewbyd(R.id.spinnerPocz);
ArrayAdapter adapterP=ArrayAdapter.createFromResource(此,R.array.odlegloscArray,R.layout.support\u simple\u spinner\u dropdown\u项);
adapterP.setDropDownViewResource(R.layout.support\u simple\u spinner\u dropdown\u项目);
喷丝头固定接头(adapterP);
spinnerP.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
//Toast.makeText(getBaseContext(),parent.getItemIdAtPosition(position)+“selected”,Toast.LENGTH_LONG.show();
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
喷丝头=(喷丝头)findViewById(R.id.spinnerDoc);
ArrayAdapter adapterD=ArrayAdapter.createFromResource(这个,R.array.odleglosscarray,R.layout.support\u simple\u spinner\u dropdown\u项);
adapterD.setDropDownViewResource(R.layout.support\u simple\u spinner\u dropdown\u项目);
喷丝头固定接头(适配器D);
spinnerD.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
if(喷丝头getItemAtPosition(位置)==0){
开关(位置){
案例0:
Toast.makeText(getApplicationContext(),“zmieńwartośćdocelową”,Toast.LENGTH_SHORT)。show();//单位相同
打破
案例1:
btnOblicz.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
metryNaKm();//米到公里
}
});
打破
案例2:
btnOblicz.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
metryNaCm();//米到厘米
}
});
打破
案例3:
btnOblicz.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
metryNaCale();//米到英寸
}
});
打破
//等等。
//还有
else if(喷丝头getItemAtPosition(位置)==1){
开关(位置){
案例0:
btnOblicz.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
千米数();//千米到米
//等
我想这样做很可怕,但我不是高级,我愿意接受建议你应该做的是删除所有的OnItemSelectedListener,只为你的按钮使用一个OnClickListener。然后使用getSelectedItemPosition
btnOblicz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int selectedP = spinnerP.getSelectedItemPosition();
int selectedD = spinnerD.getSelectedItemPosition();
switch(selectedP){
case 0:
switch(selectedD){
case 1:
convertFrom0to1();
break;
case 2:
convertFrom0to2();
....
}
break;
....
}
}
});
您应该做的是删除所有OnItemSelectedListener,并仅为按钮使用一个OnClickListener,然后使用getSelectedItemPosition
btnOblicz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int selectedP = spinnerP.getSelectedItemPosition();
int selectedD = spinnerD.getSelectedItemPosition();
switch(selectedP){
case 0:
switch(selectedD){
case 1:
convertFrom0to1();
break;
case 2:
convertFrom0to2();
....
}
break;
....
}
}
});