Java 选择微调器项以更改textview中的文本?
我需要一些关于Android转换应用程序的帮助。 因此,我有一个微调器,其中填充了以下项目:Java 选择微调器项以更改textview中的文本?,java,android,textview,android-spinner,Java,Android,Textview,Android Spinner,我需要一些关于Android转换应用程序的帮助。 因此,我有一个微调器,其中填充了以下项目: <string name="action_settings">Settings</string><string-array name="ConversionItems"> <item >Miles to Kilometers</item> <item >Kilometers to Miles&l
<string name="action_settings">Settings</string><string-array name="ConversionItems">
<item >Miles to Kilometers</item>
<item >Kilometers to Miles</item>
<item >Inches to Centimeters</item>
<item >Centimeters to Inches</item>
</string-array>
设置
英里到公里
公里到英里
英寸到厘米
厘米到英寸
这是我主要活动中的一些代码
> conversionspinner.setOnItemSelectedListener(new
> OnItemSelectedListener() {
> @Override
> public void onItemSelected(AdapterView<?> parent, View view, int position,
> long id) {
> // TODO Auto-generated method stub
>
> }
>
> @Override
> public void onNothingSelected(AdapterView<?> parent) {
> // TODO Auto-generated method stub
> return;
> }
> }
>conversionspinner.setOnItemSelectedListener(新建)
>OnItemSelectedListener(){
>@覆盖
>已选择公共位置(AdapterView父对象、视图、整型位置、,
>长id){
>//TODO自动生成的方法存根
>
> }
>
>@覆盖
>未选择公共无效(AdapterView父级){
>//TODO自动生成的方法存根
>返回;
> }
> }
我想知道的是,当选择特定项目时,我将如何更改文本视图的文本。例如,如果选择了“英里到公里”,则textview1
将显示“英里”,而textview2
将显示“公里”。我对android编程和一般编程都是新手,因此简单的解决方案将非常有用
谢谢非常简单:
final String CONDITION_1 = "Kilometers";
final String CONDITION_2 = "Miles";
TextView textView1 = (TextView) findViewById(R.id.textView1);
int units = 10;
private void updateText() {
String spinnerState = conversionspinner.getSelectedItem().toString();
if (spinnerState.equalsIgnoreCase("")) {
textView1.setText("");
} else if (spinnerState.equalsIgnoreCase(CONDITION_1)){
//do appropriate unit conversion:
units = units * (8/5);
textView1.setText(String.valueOf(units) + spinnerState);
} else if (spinnerState.equalsIgnoreCase(CONDITION_2)) {
units = units * (5/8);
textView1.setText(String.valueOf(units) + spinnerState);
}
}
conversionspinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
updateText();
});
final String CONDITION_1=“km”;
最终管柱条件_2=“英里”;
TextView textView1=(TextView)findViewById(R.id.textView1);
整数单位=10;
私有void updateText(){
字符串spinnerState=conversionspinner.getSelectedItem().toString();
if(喷丝头状态。相等信号状态(“”){
textView1.setText(“”);
}else if(喷丝头状态等信号情况(条件1)){
//进行适当的单位转换:
单位=单位*(8/5);
textView1.setText(字符串.valueOf(单位)+喷丝头状态);
}else如果(喷丝头状态.相等信号情况(条件_2)){
单位=单位*(5/8);
textView1.setText(字符串.valueOf(单位)+喷丝头状态);
}
}
setOnItemSelectedListener(新的OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
updateText();
});
您可以这样做
conversionspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//position will tell you which position is selected
// in your array index 0 - <item >Miles to Kilometers</item>
// index 1 - <item >Kilometers to Miles</item>
// index 2 - <item >Inches to Centimeters</item>
// index 3 - <item >Centimeters to Inches</item>
switch(position){
case 0:
textView1.settext("Miles");
textView2.settext("Kilometers");
break;
case 1:
textView1.settext("Kilometer");
textView2.settext("Miles");
break;
case 2:
textView1.settext("Inches");
textView2.settext("Centimeter");
break;
case 3:
textView1.settext("Centimeter");
textView2.settext("Inches");
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
conversionspinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
//position将告诉您选择了哪个位置
//在您的数组中,索引为0-英里到公里
//索引1-公里到英里
//索引2-英寸到厘米
//索引3-厘米到英寸
开关(位置){
案例0:
textView1.settext(“英里”);
textView2.settext(“公里”);
打破
案例1:
textView1.settext(“公里”);
textView2.settext(“英里”);
打破
案例2:
textView1.settext(“英寸”);
textView2.settext(“厘米”);
打破
案例3:
textView1.settext(“厘米”);
textView2.settext(“英寸”);
打破
}
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
希望有帮助