public View getView(int position, View convertView, ViewGroup parent) { LinearLayout ll =null; if (convertView!=null){ ll=(LinearLayout)convertView; }else { ll= (LinearLayout) LayoutInflater.from(MainActivity.this).inflate(R.layout.listcell,null); }//绑定列表项布局 ListData data =getItem(position); //绑定数据 ImageView icon =(ImageView)ll.findViewById(R.id.icon); TextView price =(TextView)ll.findViewById(R.id.price); icon.setImageResource(data.iconID); price.setText(data.price); findViewById(R.id.buybuy).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent3 = new Intent(MainActivity.this,THEATY1.class); Bundle b =new Bundle(); intent3.putExtra("name",data.name); b.putString("price",data.getPrice()); 不管是用iintent 还是别的都是提示在内部类当中不能引用本地变量data,需要被声明为常量 intent3.putExtras(b); sendBroadcast(intent3); } });
listview.get(position) 直接传这个行对象 然后到下一个界面在去取里面的东西
加上final后,可以使用了。我又想到一个问题,在ListView中,生成每行的数据时都会为每行产生一个data,而不是公用1个data。 不然给 ListData data =getItem(position); //绑定数据 加上 final后应该只能生成一行数据。 @浅笑_JIE
intent.putExtra("key","value");
80,490
社区成员
91,375
社区内容
加载中
试试用AI创作助手写篇文章吧