android开发中,给Spinner中选项设置触发事件,实现不同Activity的跳转
android开发中,给Spinner中选项设置触发事件,实现不同Activity的跳转。通过点击一个按钮实现Spinner下拉列表,然后点击不同的列表选项,程序会跳转到...
android开发中,给Spinner中选项设置触发事件,实现不同Activity的跳转。通过点击一个按钮实现Spinner下拉列表,然后点击不同的列表选项,程序会跳转到不同的界面,这需要怎样实现?
就好像手机QQ右上角有一个“+”,点击后会有扫一扫,加好友等下拉的选项,然后点击不同选项就跳转到了不同的功能界面一样。 展开
就好像手机QQ右上角有一个“+”,点击后会有扫一扫,加好友等下拉的选项,然后点击不同选项就跳转到了不同的功能界面一样。 展开
1个回答
展开全部
/*实现到支付宝和银联界面的跳转并从两个界面传值*/
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) {
}
}
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) {
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询