执行点击微调事件onItemSelected执行code [英] Perform click event on Spinner to execute code in onItemSelected
问题描述
我想执行后自动我的活动已经被完全加载的微调元件上的点击。
I want to perform a click on a Spinner element automatically after my activity has been loaded completely.
我用这个code设置微调和适配器:
I use this code to set up the spinner and adapter:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read_data);
getActionBar().setDisplayHomeAsUpEnabled(true);
mSpinnerDay = (Spinner) mTable.findViewById(R.id.spieltag_choice);
mAdapterSpinnerDay = new ArrayAdapter<CharSequence>(this, R.layout.custom_spinner);
mAdapterSpinnerDay.setDropDownViewResource(R.layout.custom_spinner);
mSpinnerDay.setAdapter(mAdapterSpinnerDay);
}
private void setUpSpinnerListener(final IGameData data) {
mSpinnerDay.post(new Runnable() {
public void run() {
mSpinnerDay.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
for (GameDayData d : data.getGameDay()) {
if (d.getName().equals(adapterView.getSelectedItem().toString())) {
TableRow row = (TableRow) mTable.findViewById(R.id.row_punkte_tag);
TextView t = (TextView) row.findViewById(R.id.punkte_tag);
t.setText("Punkte: " + d.getScore());
TableRow row2 = (TableRow) mTable.findViewById(R.id.row_position_tag);
TextView t2 = (TextView) row2.findViewById(R.id.position_tag);
t2.setText("Position: " + d.getPosition());
return;
}
}
}
public void onNothingSelected(AdapterView<?> adapterView) {
return;
}
});
}
});
}
public void onTeamCheckReadComplete(IGameData data) {
for (GameDayData d : data.getGameDay()) {
mAdapterSpinnerDay.add(d.getName());
}
}
我尝试后,我已经设置了适配器的微调与以下code进行点击:
I try to perform the click with following code after I have set the adapter to the spinner:
mSpinnerDay.setSelection(0, true);
View view = (View) mSpinnerDay.getChildAt(0);
long id = mSpinnerDay.getAdapter().getItemId(0);
mSpinnerDay.performItemClick(view, 0, id);
但是,这并不正常工作。可能有人告诉我,我该怎么perfom自动将微调元素的点击?当我在应用程序中选择了触摸事件的微调项目的一切工作正常。
But this does not work. Could somebody tell me how I can perfom a click on a spinner element automatically? When I select the spinner item over touch event in the application everything works fine.
问候,
桑德罗
Regards, Sandro
推荐答案
解决方案修正
据我了解,你有项目A,B,C和D.一个微调你想项目A pre-选择。您还希望用户能够选择A,B,C和D,并执行基于一个动作。
Corrected Solution As I understand it, you have a spinner with items A, B, C, and D. You want item A pre-selected. You also want the user to be able to select A, B, C, and D and perform an action based on that.
在onCreate()方法:
In the onCreate() method:
mSpinner.setAdapter(myAdapter);
mSpinner.setOnItemSelectedListener(this); // have the activity implement
// OnItemSelectedListener interface
doAction(0);
然后实现onItemSelected行动,像这样:
Then implement the onItemSelected action like so:
@Override
void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
doAction(position);
}
您必须实现doAction(INT位置)的方法来处理如何根据该项目在适配器的位置更新您的活动。清楚了吗?
You must implement the doAction(int position) method to handle how to update your activity based on the position of the item in your adapter. Clear?
了解更多关于这个项目以及如何在这里使用它:
的http://developer.android.com/reference/android/widget/AdapterView.OnItemSelectedListener.html
Read more about this item and how to use it here: http://developer.android.com/reference/android/widget/AdapterView.OnItemSelectedListener.html
这篇关于执行点击微调事件onItemSelected执行code的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!