【发布时间】:2012-10-11 15:22:42
【问题描述】:
为什么这不起作用?!
if(itemx == "Test number item 0")
{
Log.i("Dropdown", "inside if");
us_lo_ans_hold.setText("0x");
};
如果 itemx 是一个字符串并且它具有字符串“测试编号项目 0”。
我正在创建我的第一个微调器。
这是 Activity 的 onCreate 块中的微调器代码:
Spinner us_lo_spinner = (Spinner) findViewById(R.id.ul_ans_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.test_defaults , android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
us_lo_spinner.setAdapter(adapter);
// Spinner click listener
us_lo_spinner.setOnItemSelectedListener(this);
这里是strings.xml中的String数组:
<string name="spin_title_ulover_ans">Spinner default:</string>
<string-array name="test_defaults">
<item>Test number item 0</item>
<item>Test number item 1</item>
<item>Test number item 2</item>
<item>Test number item 3</item>
<item>Test number item 4</item>
</string-array>
这里是 onItemSelected:
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
Log.i("XXX_Dropdown", "XXXX");
TextView us_lo_ans_hold = (TextView)findViewById(R.id.us_lo_ans_holdtest);
// On selecting a spinner item
String itemx = arg0.getSelectedItem().toString();
us_lo_ans_hold.setText("oppp12");
Log.i("Dropdown", "item: " + itemx);
Log.i("Dropdown", "arg1: " + arg1);
Log.i("Dropdown", "arg2: " + arg2);
Log.i("Dropdown", "arg3: " + arg3);
// Showing selected spinner item
if(itemx == "Test number item 0")
{
Log.i("Dropdown", "inside if");
us_lo_ans_hold.setText("0x");
};
}
从所有log.i(,)我放入我可以告诉itemx是正确的,选择旋转器中的项目时它有正确的字符串。 但是 IF 不起作用。
如果我将 IF 更改为:
if(arg2 == 0)
{
Log.i("Dropdown", "inside if");
us_lo_ans_hold.setText("0x");
};
它会起作用的;但这不是我想要的!
那么...为什么这不起作用?!:
if(itemx == "Test number item 0")
{
Log.i("Dropdown", "inside if");
us_lo_ans_hold.setText("0x");
};
如果 itemx 是一个字符串并且它具有字符串“测试编号项目 0”。 ?
“onNothingSelected”如何或何时被调用? 当你按下后退按钮? 当您选择已选择的项目时? 我的 'onNothingSelected' 永远不会被调用!
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
Log.i("Dropdown", "in NOTHING SELECTED");
TextView us_lo_ans_hold = (TextView)findViewById(R.id.us_lo_ans_holdtest);
us_lo_ans_hold.setText("nothing selected");
}
尝试像这样放入 Activity 的 onCreate 块:
// Spinner click listener
us_lo_spinner.setOnItemSelectedListener(this);
us_lo_spinner.onNothingSelected(this)
但 ~compiler~ 确实如此。
那么...“onNothingSelected”是如何或何时被调用的,它是如何连接到微调器的?
【问题讨论】:
-
你应该使用 itemx.equals("Test number item 0") 而不是 == operator ...
-
自从我开始回答问题以来......在Java中关于字符串比较的问题问了多少真是荒谬。
-
阅读您的基本 Java 知识:alvinalexander.com/java/edu/qanda/pjqa00001.shtml - 为什么 == 不适用于 String。
标签: android