下拉選單Spinner讓Android手機在有限的畫面範圍內仍可放入所需的資料, 並可以實作OnItemSelectedListener增加使用者的點選事件.
在本範例中放置了兩個Spinner Widget,並且依user的選擇不同而有對應的文字顯示在TextView中
Spinner_getValue.java
package com.tsots.Spinner_getValue;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
public class Spinner_getValue extends Activity
{
Context context = Spinner_getValue.this;
ImageView background;
Spinner spinner1;
Spinner spinner2;
TextView textview1;
TextView textview2;
TextView textview3;
TextView textview4;
TextView textview_method;
TextView textview_material;
TextView textview_spinner1_step;
TextView textview_spinner2_step;
String spinner1_position = "0";
String spinner2_position = "0";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner_getvalue);
//設背景圖&透明度
background = (ImageView) findViewById(R.id.imageview_backgroud);
background.setImageDrawable(getResources().getDrawable(R.drawable.logo));
background.setAlpha(100);
spinner1 = (Spinner) findViewById (R.id.spinner1);
spinner2 = (Spinner) findViewById (R.id.spinner2);
textview1 = (TextView) findViewById (R.id.textview1);
textview2 = (TextView) findViewById (R.id.textview2);
textview3 = (TextView) findViewById (R.id.textview3);
textview4 = (TextView) findViewById (R.id.textview4);
textview_material = (TextView) findViewById (R.id.textview_material);
textview_method = (TextView) findViewById (R.id.textview_method);
textview_spinner2_step = (TextView) findViewById (R.id.textview_spinner2_step);
textview_spinner1_step = (TextView) findViewById (R.id.textview_spinner1_step);
/*
* 必須為Spinner設定Adapter(外觀樣式及傳入的資料), 在此我們先用Android的default值
* android.R.layout.simple_spinner_item
* android.R.layout.simple_spinner_dropdown_item
*/
ArrayAdapter adapter_spinner1 = new ArrayAdapter(context, android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.array_spinner_material));
adapter_spinner1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter_spinner1);
//定義Spinner選單select item後的行為
spinner1.setOnItemSelectedListener(new Spinner.OnItemSelectedListener()
{
public void onItemSelected(AdapterView adapterView, View view, int position, long id)
{
//int position: 會傳入user選到的item的位置
//int id: 會傳入user選到的item的idtextview1.setText(adapterView.getSelectedItem().toString());
textview2.setText(String.valueOf(position));
spinner1_position = String.valueOf(position);
if(spinner1_position.equals("0"))
{
textview_method.setText(
getResources().getString(R.string.str_chemistry_method3)+"\n"+
getResources().getString(R.string.str_chemistry_method4)
);
textview_spinner1_step.setText(getResources().getString(R.string.str_chemistry_alcohol_metal_step));
}
else if(spinner1_position.equals("1"))
{
textview_method.setText(
getResources().getString(R.string.str_chemistry_method1)+"\n"+
getResources().getString(R.string.str_chemistry_method2)+"\n"+
getResources().getString(R.string.str_chemistry_method3)+"\n"+
getResources().getString(R.string.str_chemistry_method4)
);
textview_spinner1_step.setText(getResources().getString(R.string.str_chemistry_material2_step));
}
else if(spinner1_position.equals("2"))
{
textview_method.setText(
getResources().getString(R.string.str_chemistry_method3)+"\n"+
getResources().getString(R.string.str_chemistry_method4)
);
textview_spinner1_step.setText(getResources().getString(R.string.str_chemistry_material3_step));
}
else if(spinner1_position.equals("3"))
{
textview_method.setText(getResources().getString(R.string.str_chemistry_method3));
textview_spinner1_step.setText(getResources().getString(R.string.str_chemistry_material4_step));
}
else
{
textview_method.setText(
getResources().getString(R.string.str_chemistry_method1)+"\n"+
getResources().getString(R.string.str_chemistry_method2)
);
textview_spinner1_step.setText(getResources().getString(R.string.str_chemistry_material5_step));
}
}
public void onNothingSelected(AdapterView arg0)
{
// TODO Auto-generated method stub
}
});
/*
* 必須為Spinner設定Adapter(外觀樣式及傳入的資料), 在此我們先用Android的default值
* android.R.layout.simple_spinner_item
* android.R.layout.simple_spinner_dropdown_item
*/
ArrayAdapter adapter_spinner2 = null;
adapter_spinner2 = new ArrayAdapter(context, android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.array_spinner2_style2));
adapter_spinner2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter_spinner2);
//定義Spinner選單select item後的行為
spinner2.setOnItemSelectedListener(new Spinner.OnItemSelectedListener()
{
public void onItemSelected(AdapterView adapterView, View view, int position, long id)
{
//int position: 會傳入user選到的item的位置
//int id: 會傳入user選到的item的idtextview3.setText(adapterView.getSelectedItem().toString());
textview4.setText(String.valueOf(position));
spinner2_position = textview4.getText().toString();
if(spinner2_position.equals("0"))
{
textview_material.setText(getResources().getString(R.string.str_prompt_material1));
textview_spinner2_step.setText(getResources().getString(R.string.str_spinner2_method1));
}
else if(spinner2_position.equals("1"))
{
textview_material.setText(getResources().getString(R.string.str_prompt_material2));
textview_spinner2_step.setText(getResources().getString(R.string.str_spinner2_method2));
}
else if(spinner2_position.equals("2"))
{
textview_material.setText(getResources().getString(R.string.str_prompt_material1));
textview_spinner2_step.setText(getResources().getString(R.string.str_spinner2_method3));
}
}
public void onNothingSelected(AdapterView arg0)
{
// TODO Auto-generated method stub
}
});
}
}//



沒有留言:
張貼留言