问题描述
|
我必须创建一个不在布局中的微调框。
所以我要创建它,以编程方式在“我的活动”类中编写以下代码
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\");
}
});
}