2013-11-28 122 views
2

onitemselected方法我有具有微调的活动,这是处理上项目是微调中选择的方法。呼叫从按下按钮事件

public void onItemSelected(AdapterView<?> parent, View view, int pos, 
     long id) { 

      // Do stuff based on selection 
    }  
} 

而且对我有一个按钮,代码如下所示

public void addListenerOnButton() { 

    btnChangeDate = (Button) findViewById(R.id.btnChangeDate); 

    btnChangeDate.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

          // This doesnt work 
      onItemSelected(MyProfileActivity.this, v, 0, 2); 

     } 
    }); 
} 

所以基本上我想要做的是模拟通过按下一个按钮微调所选择的项目。这甚至有可能吗?

回答

4

而是呼吁按钮onItemSelected方法点击你应该使用View.performItemClick方法点击微调项上点击按钮做它:

int item_postion=0;// item which you want to click 
your_spinner.setSelection(item_postion, true); 
View item_view = (View)your_spinner.getChildAt(item_postion); 
long item_id = your_spinner.getAdapter().getItemId(item_postion); 
your_spinner.performItemClick(item_view, 0, item_id); 
+0

完善这个做了我想要的!也许我应该在我最初的问题提到我所真正关注的是运行在onItemSelected方法的代码。我可能只是复制并粘贴所有的代码到OnClick方法却会被不必要的重复。 –

+0

这并没有为我工作。你也硬编码0。 –

1

试试这个..

btnChangeDate.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

       spinner.setSelection(index); // which you what set the spinner position 

       String item = spinner.getSelectedItem().toString().trim(); //which you need to get the selected item from the spinner 

       System.out.println("Selected item : "+item): 

     } 

    }); 
1

试试这个代码:

spin.performItemClick(view, position, id);