当前位置: 代码迷 >> Android >> Android开发-spinner动态联动
  详细解决方案

Android开发-spinner动态联动

热度:27   发布时间:2016-05-01 14:43:14.0
Android开发----spinner动态联动

今天遇到一个问题:一个Activity(A)跳转到另一个Activity(B),我的想法是从A中ListView选中的项中提取出想要的字符串,然后传递到B中,当B中接收到传递过来的信息后,对B中的一个Spinner做相应的改变

A传数据给B很简单,在A中用Intent去putExtra就行, 然后到B中的onCreate()中用getExtras就行了,可是怎么才能让Spinner也跟着改变呢?

原来spinner有一个setSelection(),将spinner设为全局变量后用spinner.setSelection(GestureConstant.FILE_GESTURE, false);就可以了。

贴一部分代码,不完整。

A Activity

			Intent fileIntent = new Intent(FileManager.this,					CreateGestureActivity.class);			fileIntent.putExtra("file", "file");			startActivity(fileIntent);

B Activity

@Override	public void onCreate(Bundle savedInstanceState)	{		super.onCreate(savedInstanceState);		setContentView(R.layout.create_gesture);		spinner = (Spinner) findViewById(R.id.spinner);				// 设置spinner的adapter		ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(				this, R.array.add_gesture_prompt,				android.R.layout.simple_spinner_item);		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);		spinner.setAdapter(adapter);		spinner.setPrompt("创建手势类型");		// 设置spinner的监听器		spinner.setOnItemSelectedListener(new OnItemSelectedListener()		{			@Override			public void onItemSelected(AdapterView<?> parent, View view,					int position, long id)			{				Toast.makeText(CreateGestureActivity.this,						parent.getItemAtPosition(position).toString(),						Toast.LENGTH_SHORT).show();				switch (position)				{				// 文件				case GestureConstant.FILE_GESTURE:					textView.setText("路径:");					editText.setText("mnt/sdcard/");					button_choose.setText("添加");					current_gesture = GestureConstant.FILE_GESTURE;					overlay.clear(true);					button_ok.setEnabled(false);					// button.setVisibility(View.VISIBLE);					break;				default:					break;				}			}			@Override			public void onNothingSelected(AdapterView<?> parent)			{			}		});				getIntent2SetSpinner();	}	/**	 * 获取传递过来的Intent信息	 */	private void getIntent2SetSpinner()	{		Intent i = getIntent();		Bundle b = i.getExtras();		if("file".equals(b.getString("file")))		{			Log.i(TAG, "------------------------------------------------------>OK?");			spinner.setSelection(GestureConstant.FILE_GESTURE, false);			editText.setText("mnt/");		}	}


  相关解决方案