android里能为下拉菜单设置监听事件么
Spinner组件的主要功能是用于进行下拉列表显示的功能,当用户选中下拉列表中的某个选项之后可以使用Spinner类中提供的setOnItemClickListener()方法进行监听。
下拉菜单监听范例:
package com.richard.onitemselectedlistener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class MainActivity extends Activity {
private Spinner city = null; // 定义下拉列表框
private Spinner area = null; // 定义下拉列表框
private String[][] areaData = new String[][] { // 定义联动菜单项
{ "东城", "西城", "朝阳", "大兴", "平谷" }, // 第一级子选项
{ "黄浦", "杨浦", "闵行" }, // 第二级子选项
{ "广州" } }; // 第三级子选项
private ArrayAdapter<CharSequence> adapterArea = null; // 下拉列表内容适配器
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 父类onCreate()
super.setContentView(R.layout.activity_main); // 调用布局管理器
this.city = (Spinner) super.findViewById(R.id.city); // 取得组件
this.area = (Spinner) super.findViewById(R.id.area); // 取得组件
this.city.setOnItemSelectedListener(
new OnItemSelectedListenerImpl()); // 设置监听器
}
private class OnItemSelectedListenerImpl implements OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long id) { // 选项选中时触发
MainActivity.this.adapterArea = new ArrayAdapter<CharSequence>(
MainActivity.this,
android.R.layout.simple_spinner_item,
MainActivity.this.areaData[position]); // 实例化列表项
MainActivity.this.adapterArea.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item); // 设置下拉列表显示风格
MainActivity.this.area
.setAdapter(MainActivity.this.adapterArea); // 设置数据
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) { // 没有选项时触发
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
推荐于2016-04-22
private void startGame(int i){
Log.d(TAG, "clicked on" + i);
Intent intent = new Intent(Sudoku.this,Game.class);
intent.putExtra(Game.KEY_DIFFICULTY, i);
startActivity(intent);
}
这个函数,看看这个函数里都是谁用它了?是不是点击容易正常困难这个Dialog的时候调用了?然后你看函数里面的intent.putExtra(Game.KEY_DIFFICULTY, i);你点击的第几行?把这个i和Game.KEY_DIFFICULTY组成键值对传递到Intent intent = new Intent(Sudoku.this,Game.class);的Game中,然后Game的onCreate中接收并接着运行,如有不明,欢迎追问,如果明白了,希望采纳
书上没有,现在代码还没有打全。老师让做的项目,各种问题出现。
已发私信