我想在完全加载活动后自动点击Spinner元素。
我使用此代码设置微调器和适配器:
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());
}
}
在将适配器设置为微调器后,我尝试使用以下代码执行单击:
mSpinnerDay.setSelection(0, true);
View view = (View) mSpinnerDay.getChildAt(0);
long id = mSpinnerDay.getAdapter().getItemId(0);
mSpinnerDay.performItemClick(view, 0, id);
但这不起作用。有人能告诉我如何自动点击旋转元素吗?当我在应用程序中选择旋转项目而不是触摸事件时,一切正常。
此致 桑德罗
答案 0 :(得分:0)
我不认为你是从你发布的代码中调用setUpSpinnerListener
。即使你正在调用它,我也不认为将runnable发布到setuplistener是有利的。
将runnable中的所有代码移至setAdapter
答案 1 :(得分:0)
更正后的解决方案 据我所知,你有一个带有项目A,B,C和D的微调器。你想要预先选择项目A.您还希望用户能够选择A,B,C和D并根据该操作执行操作。
在onCreate()方法中:
mSpinner.setAdapter(myAdapter);
mSpinner.setOnItemSelectedListener(this); // have the activity implement
// OnItemSelectedListener interface
doAction(0);
然后执行onItemSelected操作:
@Override
void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
doAction(position);
}
您必须实现doAction(int position)方法来处理如何根据适配器中项目的位置更新活动。清除?
详细了解此项目以及如何在此处使用它: http://developer.android.com/reference/android/widget/AdapterView.OnItemSelectedListener.html