中易网

android开发中,给Spinner中选项设置触发事件,实现不同Activity的跳转

答案:1  悬赏:30  
解决时间 2021-04-27 17:28
  • 提问者网友:江山如画
  • 2021-04-27 08:10
android开发中,给Spinner中选项设置触发事件,实现不同Activity的跳转。通过点击一个按钮实现Spinner下拉列表,然后点击不同的列表选项,程序会跳转到不同的界面,这需要怎样实现?
就好像手机QQ右上角有一个“+”,点击后会有扫一扫,加好友等下拉的选项,然后点击不同选项就跳转到了不同的功能界面一样。
最佳答案
  • 二级知识专家网友:duile
  • 2021-04-27 08:35

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+"元");

}
}

@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) {

}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息