android Spinner OnItemSelectedListener监听无效

qin123q 2014-07-24 10:50:26

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.register);
info.WebGet();
nations=info.initData(); //这个有数据,这里没有问题
NationSpinner=(Spinner) findViewById(R.id.NationText);
MyAdapter myAdapter=new MyAdapter(this,loadRes,nations);
NationSpinner.setAdapter(myAdapter);
NationSpinner.setOnItemSelectedListener(myAdapter);
}

上面是Activity的代码,
下面是 适配器的类;


public class MyAdapter extends BaseAdapter implements OnItemSelectedListener {

Context context;
ArrayList<Nation> list=new ArrayList<Nation>();
private Handler handler;
public MyAdapter(Context con,Handler handler,ArrayList<Nation> list){
this.list=list;
context=con;
this.handler=handler;
}
@Override
public int getCount() {
android.util.Log.i("t460470591", "getCount");
return list.size();
}

@Override
public Nation getItem(int position) {
android.util.Log.i("t460470591", "getItem");
return list.get(position);
}

@Override
public long getItemId(int position) {
android.util.Log.i("t460470591", "getItemId");
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
android.util.Log.i("t460470591", "getView "+position);
Nation o=list.get(position);
View view=View.inflate(context, R.layout.item_listview,null);
TextView tView=(TextView) view.findViewById(R.id.nation_id);
TextView tViewD=(TextView) view.findViewById(R.id.nation_text);
tView.setText(o.getNationid()+"");
tViewD.setText(o.getNationtext()+"");
return view;
}

@Override //执行不了这个方法
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
android.util.Log.i("t460470591", "onItemSelected");
TextView iDTextView=(TextView) arg1.findViewById(R.id.nation_id);
TextView TextView=(TextView) arg1.findViewById(R.id.nation_text);
Bundle bundle=new Bundle();
bundle.putString(WebSerState.Operate, WebSerState.GetNation);
bundle.putString(WebSerState.NationID, iDTextView.getText().toString().trim());
bundle.putString(WebSerState.NationText,TextView.getText().toString().trim());
Message msgMessage=new Message();
msgMessage.what=WebSerState.Other;
msgMessage.setData(bundle);
handler.sendMessage(msgMessage);
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
android.util.Log.i("t460470591", "onNothingSelected");
}


}

...全文
1147 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋千不会坠 2017-03-09
  • 打赏
  • 举报
回复
楼主解决了吗
秋千不会坠 2017-03-09
  • 打赏
  • 举报
回复
我没用线程 自定义了一个适配器 监听器也没响应
qin123q 2014-07-30
  • 打赏
  • 举报
回复
我知道什么原因了,在外部写,内部写都无所谓的 其实,主要是用了线程,当我监听的时候,线程还没有把数据放回来,所以,老是不能成功,只要把数据先读出来,然后在放到adapter里面就可以了
qin123q 2014-07-24
  • 打赏
  • 举报
回复
引用 1 楼 heaimnmn 的回复:
你单独写个OnItemSelectedListener 会不会执行了,,,
单独写貌似可以实现,但是为什么 写在一个类就不行,我别的接口也是这样实现的,别的可以啊
Birds2018 2014-07-24
  • 打赏
  • 举报
回复
在R.layout.item_listview 这个布局文件里面 加入下面的标签试试,可能是没有焦点。 android:descendantFocusability="blocksDescendants" android:focusable="false"
lionfresh 2014-07-24
  • 打赏
  • 举报
回复
OnItemSelectedListener 接口应该在你的Activity中实现吧。
哎,真难 2014-07-24
  • 打赏
  • 举报
回复
你单独写个OnItemSelectedListener 会不会执行了,,,
  • 打赏
  • 举报
回复
你可以在activity类里面写OnItemSelectedListener 。 或者通过适配器的构造方法,传递个Spinner对象过来,在执行OnItemSelectedListener 也是可以的。
灰火 2014-07-24
  • 打赏
  • 举报
回复
这写法好奇怪啊~不能在activity里直接set监听器么?
红袖满楼招 2014-07-24
  • 打赏
  • 举报
回复
要么自定义接口类,要么直接匿名内部类实现,你写到适配器中调用不到的
qin123q 2014-07-24
  • 打赏
  • 举报
回复
我现在发现 写在一个类里面 也不能监听了
qin123q 2014-07-24
  • 打赏
  • 举报
回复
引用 3 楼 birdsaction 的回复:
在R.layout.item_listview 这个布局文件里面 加入下面的标签试试,可能是没有焦点。 android:descendantFocusability="blocksDescendants" android:focusable="false"
家了 不得
内容概要:本文档为一份《计算机程序设计语言(C++)》课程的实验报告,涵盖了从基础语法到面向对象编程的多个实验内容。实验内容包括基础语法练习(如银行存款计算、数值比较、科学计算)、控制结构(分支与循环,如闰年判断、素数判定、Kaprekar黑洞数)、数组操作(一维与二维数组的排序、查找、极值计算、杨辉三角)、函数定义与应用(递归、参数传递、函数重载)以及面向对象编程(类与对象的设计、继承、多态性、文件操作)。文档详细展示了每个实验的任务描述、具体C++代码实现、测试结果及实验分析,体现了从简单到复杂、逐步深入的学习路径。; 适合人群:具备C++基础语法知识,正在学习或巩固程序设计课程的在校大学生及初级编程学习者。; 使用场景及目标:①作为C++课程的配套实验指导材料,帮助学生通过实践掌握编程基础知识和核心算法;②用于自学练习,提升对循环、数组、函数和面向对象等核心概念的理解与编码能力。; 阅读建议:学习者应结合文档中的代码实例,动手在编程环境中逐一实现并调试,重点关注代码逻辑、边界条件处理和算法效率,通过对比预期输出与实际输出加深对知识点的掌握。

80,488

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧