在活动中访问Spinner而不在布局中定义

问题描述

|
Spinner spinner = new Spinner(this);
String option[]={\"By Date\",\"By Transaction ID\",\"By Customer Phone\"};
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,option);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item );
spinner.setAdapter(spinnerArrayAdapter);
spinner.performClick();
spinner.setonItemSelectedListener(new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> parentview,View v,int position,long id)
    {
        Log.d(\"in select\",\"yes\");
    }

    @Override
    public void onnothingSelected(AdapterView<?> arg0) 
    {
        Toast.makeText(MainMenu.this,\"no\",Toast.LENGTH_LONG).show();
        Log.d(\"In No select\",\"No\");
    }
});
这一切都做得非常好,在先前的视图上会生成新的Spinner视图弹出视图,并且先前的视图仍显示但暗淡,所有焦点都集中在此当前Spinner上 但是问题是当我在此微调器中选择任何项目时,应调用onItemSelected(),但不调用它。 但是如果我写
setContentView(spinner);
然后调用onItemSelected(),但现在不显示以前的视图。 所以我如何在没有此行
setContentView(spinner);
的情况下访问微调框 我想获得微调器中所选项目的位置 请提供我的代码或示例 我在等你的好答复     

解决方法

        如果您不想使用
setContentView(spinner);
,则必须将微调器绑定到布局。在代码末尾使用类似这样的内容
LinearLayout line = (LinearLayout) findViewById(R.id.line);
line.addView(spinner);
而您的布局是
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
android:id=\"@+id/line\">
</LinearLayout>