执行点击微调事件onItemSelected执行code [英] Perform click event on Spinner to execute code in onItemSelected

查看:133
本文介绍了执行点击微调事件onItemSelected执行code的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想执行后自动我的活动已经被完全加载的微调元件上的点击。

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆