我是一个 Android 菜鸟,我正在尝试制作一个微调器,并希望根据微调器项目的选择来更改另一个文本。
例如,如果我选择果汁,我需要将文本更改为“加仑”。等等
这是我的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
Button saveButton = (Button) findViewById(R.id.save_button);
Spinner foodSpinner = (Spinner) findViewById(R.id.foodSpinner);
String foodChoice = foodSpinner.getSelectedItem().toString();
TextView unit = (TextView) findViewById(R.id.units);
if(foodChoice.equals("Egg"))
{
unit.setText("Dozen");
}
else if(foodChoice.equals("Juice"))
{
unit.setText("gallons");
}
else if(foodChoice.equals("Carrot"))
{
unit.setText("bunch");
}
else if(foodChoice.equals("Chocolate"))
{
unit.setText("bars");
}
else if(foodChoice.equals("Bread"))
{
unit.setText("loaf");
}
saveButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(EditActivity.this,
MainActivity.class);
startActivity(intent);
}
});
}
但是文本第一次更改为“Dozens”,然后当我从微调器中选择其他项目时,它没有更改。
最佳答案
将 setOnItemSelectedListener
添加到 Spinner,以根据 Spinner 选择更改 TextView 文本:
foodSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
String selItem = foodSpinner.getItemAtPosition(arg2).toString();
if(selItem.equals("Juice"))
{
unit.setText("gallons");
}....
}
});
关于Android 微调器和更改文本取决于项目选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28523046/