androidspinner事件
Ⅰ android開發中,給Spinner中選項設置觸發事件,實現不同Activity的跳轉
/*實現到支付寶和銀聯界面的跳轉並從兩個界面傳值*/
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
Intent intent;
private int requestCode;
private Spinner sp;
private String[] data;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initView();
}
/**
*處理組件的方法
*/
private void initView() {
tv = ((TextView) findViewById(R.id.tv));
//需要適配的View,是"v"
sp = ((Spinner) findViewById(R.id.sp));
//接下來是創建MVC中的"c" controler
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);
sp.setAdapter(adapter);
sp.setOnItemSelectedListener(this);
}
private void initData() {//初始化數據
data = new String[]{"請選擇","支付寶","銀聯"};
}
/*
*處理從銀聯和支付寶返回數據的方法
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (222==requestCode&&resultCode==999){
//說明是從銀聯頁面返回了,讀取intent攜帶的信息
int money=data.getIntExtra("money",0);
tv.setText("付款金額:"+money+"元");
}else if (111==requestCode&&resultCode==888){
//說明是從支付寶頁面返回了,讀取intent攜帶的信息
int money=data.getIntExtra("money",0);
int privilege=data.getIntExtra("privilege",0);
tv.setText("付款金額:"+money+"元,優惠金額:"+privilege+"元");
}
}
/*spinner被點擊事件的處理*/
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String str=sp.getSelectedItem().toString();
if ("支付寶".equals(str)){
intent=new Intent(this,ZhifubaoActivity.class);
requestCode=111;
}else if ("銀聯".equals(str)){
intent=new Intent(this,YinlianActivity.class);
requestCode=222;
}else {
return;
}
//如果不需要跳轉的頁面返回值,下面可以直接用startActivity(intent);
startActivityForResult(intent, requestCode);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
Ⅱ android 如何讓spinner第一次載入 禁止
Spinner在初始化時會自動調用一次OnItemSelectedListener事件原因:有人說是Bug,其實這與C#的事件機制類似,這個我也不懂。提供的解決辦法:在事件注冊之前調用spinner.setSelection(0, true);
Ⅲ android開發中,spinner下拉框的監聽事件可以意圖跳轉嗎
java">spinner=(Spinner)findViewById(id.Myspiner);
//建立數據源
String[]mItems=getResources().getStringArray(R.array.languages);
//建立Adapter並且綁定數據源
ArrayAdapter<String>adapter=newArrayAdapter<String>(this,android.R.layout.simple_spinner_item,mItems);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//綁定Adapter到控制項
spinner.setAdapter(adapter);
//首先確保spinner已經初始化,把這里改一下
spinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){
...
});
Ⅳ android中spinner如何實現省市二級聯動
Androidspinner實現省市二級聯動,需要自定義adpter,將數據源綁定到adpter,當點擊省時,觸發自定義響應事件,改變市,示例如下:
{
privateTextViewtextView;
privateSpinnerprovince;
privateSpinnercity;
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//String[]provinces=newString[]{"-省份-","河北省","山西省","北京"};
textView=(TextView)this.findViewById(R.id.textView);
province=(Spinner)this.findViewById(R.id.province);
city=(Spinner)this.findViewById(R.id.city);
//(處理省的顯示)
//將可選內容與ArrayAdapter的連接(從資源數組文件中獲取數據)
ArrayAdapter<CharSequence>adapter=
ArrayAdapter.createFromResource(this,R.array.province,android.R.layout.simple_spinner_item);
//newArrayAdapter<String>(this,android.R.layout.simple_spinner_item,provinces);
//設置下拉列表的風格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//將數據綁定到Spinner視圖上
province.setAdapter(adapter);
//添加條目被選中監聽器
province.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){
@Override
publicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition,longid){
//parent既是province對象
Spinnerspinner=(Spinner)parent;
Stringpro=(String)spinner.getItemAtPosition(position);
//(處理省的市的顯示)
//將默認值與ArrayAdapter連接(從資源數組文件中獲取數據)
ArrayAdapter<CharSequence>cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.citydefault,android.R.layout.simple_spinner_item);
//newArrayAdapter<CharSequence>
//(MainActivity.this,android.R.layout.simple_spinner_item,cities);
//獲取所在省含有哪些市(從資源數組文件中獲取數據)
if(pro.equals("河北省")){
cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.hb,android.R.layout.simple_spinner_item);
}elseif(pro.equals("北京市")){
cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.bj,android.R.layout.simple_spinner_item);
}elseif(pro.equals("山西省")){
cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.shx,android.R.layout.simple_spinner_item);
}
//綁定數據到Spinner(City)上
city.setAdapter(cityAdapter);
}
@Override
publicvoidonNothingSelected(AdapterView<?>parent){
}
});
}
}
Ⅳ android 的spinner是一個什麼作用的控制項
可以使用Button加ListPopupWindow實現和spinner一樣的效果,並且可以監聽到點擊事件(Spinner是不能設置點擊事件的)
布局文件,只有一個button
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent" >
<Button
android:id="@+id/button"
android:layout_width="100dp"
android:layout_height="50dp"
/>
</LinearLayout>
代碼
public class MainActivity extends Activity {
private Button button;
private ListPopupWindow popupWindow;
private List<String> strings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
strings = new ArrayList<String>();
strings.add("item1");
strings.add("item2");
strings.add("item3");
button = (Button)findViewById(R.id.button);
popupWindow = new ListPopupWindow(this);
popupWindow.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,strings));
popupWindow.setAnchorView(button);
popupWindow.setWidth(LayoutParams.WRAP_CONTENT);
popupWindow.setHeight(LayoutParams.WRAP_CONTENT);
popupWindow.setModal(true);
popupWindow.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
button.setText(strings.get(position));
popupWindow.dismiss();
}
});
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.show();
}
});
}
}
Ⅵ android中的spinner.setOnItemSelectedListener監聽問題
spinner中列表的第一項是默認被選中的,所以一進來就會執行監聽事件。
你可以讓第一項不被選中,spinner2.setSelection(0, false).
Ⅶ android開發中怎樣獲取spinner選中的內容
1、獲取選中值要通過spinner的setOnItemSelectedListener()事件來操作,根據spinner綁定值的方式的不一樣,獲取選中值的方式略有不同。
2、如果沒有用實體層綁定數據的話,諸如通過
SimpleAdapter adapter = new SimpleAdapter(
HRInputBase_Activity.this, items, R.layout.sp_item,
new String[] { "text", "value" }, new int[] {
R.id.sp_text, R.id.sp_value });
sp_privince.setAdapter(adapter);
這種方式綁定的。獲取的方式為:
TextView ProvinceTxt = (TextView) sp_privince.getSelectedView()
.findViewById(R.id.sp_value); // 得到選中的選項Id
String codeString = ProvinceTxt.getText().toString();
如果使用的是實體層的話,在setOnItemSelectedListener()事件中根據點擊的索引值獲取相對應的實體類,然後從實體類中獲取對應得Code和Value值,相對來說,使用實體層更加的方便,代碼整潔。
3、兩者都使用的是Adapter數據集的綁定,主要是考察對adapter的知識,可以對這方面多學習一點。
Ⅷ Android spinner點擊相同的item怎麼觸發事件
您好,是這樣的:
換成LinkButton就可以。——解決方案——好像觸發ItemDataBind事件然後用Button b= (e.Item.FindContorl("Button3") as Button);才能發現button 在模板里的伺服器端代碼都要事件編寫 在用e.item.findcontorl找------解決方案。
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
int index = tmpTabBarController.selectedIndex;
NSString *titleName = nil;
switch (index) {
case 0:
titleName = @"FirstView";
break;
case 1:
titleName = @"SecondView";
break;
case 2:
titleName = @"ThirdView";
break;
default:
break;
}
[viewController setTitle:titleName];
UIImage *image = [UIImage imageNamed:@"clockicon.png"];
[[viewController tabBarItem] setImage:image];
[window addSubview:viewController.view];
[window makeKeyAndVisible];
Ⅸ android開發中,給Spinner中某一個選項設置觸發事件,將數據傳到下一個界面
typeSpinner.setOnItemSelectedListener(new
OnItemSelectedListener()
{
@Override
public
void
onItemSelected(AdapterView<?>
parent,
View
view,
int
position,
long
id)
{
if
(position
==
1
||
position
==
2)
{
date_text.setVisibility(View.GONE);
et_date.setVisibility(View.GONE);
btn_date.setVisibility(View.GONE);
}
else
{
date_text.setVisibility(View.VISIBLE);
et_date.setVisibility(View.VISIBLE);
btn_date.setVisibility(View.VISIBLE);
}
}
你看你選擇的是第幾項。
就跳轉啊。
至於數據。
跳轉界面是Intent,
Intent附帶數據就可以了
Ⅹ android spinner怎麼用
android中的spinner控制項是表示下拉菜單的意思,按照如下步驟使用:
1、首先使用Android studio創建一個項目,如下圖:
4、最後去類中綁定控制項,並添加數據即可使用。