如何解决以编程方式创建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\");
}
});
所以我的问题是我如何访问活动中的微调器选择的项目
解决方法
在您的
onItemSelected
中:
@Override
public void onItemSelected(AdapterView<?> parentview,View v,int position,long id)
{
Log.d(\"in select\",\"yes\");
}
position
可帮助您检索所选的项目。在您的情况下,应为:
option[position]
, 在侦听器之外访问它的唯一方法是创建一个将保留位置的变量,因此稍后将使用它。
像这样:
public class YourActivity extends Activity {
private int curPos;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
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,long id)
{
curPos = position;
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\");
}
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。