1

为什么这不起作用?!

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 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)   

但是〜编译器〜确实喜欢。

那么......如何或何时调用“onNothingSelected”以及它如何连接到微调器?

4

2 回答 2

4

如果您itemx是一个变量,那么您不能将两个字符串与==. 改为使用items.equals("Test number item 0");

==比较对象equals()比较字符串值。看看这个帖子

于 2012-10-21T18:42:05.253 回答
2

永远不要用 == 比较字符串,使用等于:

if(itemx.equals("Test item 0")){...

至于 onNothingSelected,文档指出,例如,如果您从适配器中删除所选项目,它将被调用。

于 2012-10-21T18:43:21.823 回答