黑马程序员技术交流社区

标题: AlertDialog.Builder [打印本页]

作者: jack_93    时间: 2014-5-1 14:26
标题: AlertDialog.Builder
本帖最后由 jack_93 于 2014-5-1 14:29 编辑

这个类错了,这是自定义的SimperAdapter类,
  1. package com.example.test3;

  2. import java.util.List;
  3. import java.util.Map;
  4. import android.app.AlertDialog;
  5. import android.content.Context;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.BaseAdapter;
  10. import android.widget.Button;
  11. import android.widget.CheckBox;
  12. import android.widget.CompoundButton;
  13. import android.widget.CompoundButton.OnCheckedChangeListener;
  14. import android.widget.ImageView;
  15. import android.widget.TextView;

  16. public class MyAdapter extends BaseAdapter{
  17.         private LayoutInflater mInflater;
  18.         private List<Map<String, Object>> list;
  19.         private int layoutID;
  20.         private String flag[];
  21.         private int ItemIDs[];
  22.         public MyAdapter(Context context, List<Map<String, Object>> list, int layoutID, String flag[], int ItemIDs[]){
  23.                 this.mInflater = LayoutInflater.from(context);
  24.                 this.list = list;
  25.                 this.layoutID = layoutID;
  26.                 this.flag = flag;
  27.                 this.ItemIDs = ItemIDs;
  28.         }

  29.         @Override
  30.         public int getCount() {
  31.                 // TODO Auto-generated method stub
  32.                 return list.size();
  33.         }

  34.         @Override
  35.         public Object getItem(int arg0) {
  36.                 // TODO Auto-generated method stub
  37.                 return 0;
  38.         }

  39.         @Override
  40.         public long getItemId(int position) {
  41.                 // TODO Auto-generated method stub
  42.                 return 0;
  43.         }

  44.         @Override
  45.         public View getView(int position, View convertView, ViewGroup parent) {
  46.                 // TODO Auto-generated method stub
  47.                 convertView = mInflater.inflate(layoutID, null);
  48.                 for (int i = 0; i < flag.length; i++) {
  49.                         if (convertView.findViewById(ItemIDs[i]) instanceof ImageView) {
  50.                                 ImageView iView = (ImageView) convertView.findViewById(ItemIDs[i]);
  51.                                 iView.setBackgroundResource((Integer)list.get(position).get(flag[i]));
  52.                         }else if (convertView.findViewById(ItemIDs[i]) instanceof TextView) {
  53.                                 TextView tView = (TextView) convertView.findViewById(ItemIDs[i]);
  54.                                 tView.setText((String)list.get(position).get(flag[i]));
  55.                         }
  56.                 }
  57.                
  58.                 ((Button)convertView.findViewById(R.id.Simple_btn)).setOnClickListener(
  59.                         new View.OnClickListener(){
  60.                         @Override
  61.                                 public void onClick(View v) {
  62.                                 // TODO Auto-generated method stub
  63.                                         new AlertDialog.Builder(MyAdapter.this)
  64.                                         .setTitle("自定义SimpleAdapter")
  65.                                         .setMessage("按钮成功触发监听事件!")
  66.                                         .show();
  67.                                 }
  68.                         });
  69.                 ((CheckBox)convertView.findViewById(R.id.Simple_cb)).
  70.                 setOnCheckedChangeListener(new OnCheckedChangeListener() {                        
  71.                         @Override
  72.                                 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  73.                                 // TODO Auto-generated method stub
  74.                                         new AlertDialog.Builder(null)
  75.                                         .setTitle("自定义SimpleAdapter")
  76.                                         .setMessage("CheckBox成功触发监听事件!")
  77.                                         .show();
  78.                                 }
  79.                         });
  80.                 return convertView;
  81.         }

  82. }
复制代码

下面代码报错new AlertDialog.Builder(MyAdapter.this)
  1.         ((Button)convertView.findViewById(R.id.Simple_btn)).setOnClickListener(
  2.                         new View.OnClickListener(){
  3.                         @Override
  4.                                 public void onClick(View v) {
  5.                                 // TODO Auto-generated method stub
  6.                                         new AlertDialog.Builder(MyAdapter.this)
  7.                                         .setTitle("自定义SimpleAdapter")
  8.                                         .setMessage("按钮成功触发监听事件!")
  9.                                         .show();
  10.                                 }
  11.                         });
  12.           ((CheckBox)convertView.findViewById(R.id.Simple_cb)).
  13.                 setOnCheckedChangeListener(new OnCheckedChangeListener() {                        
  14.                         @Override
  15.                                 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  16.                                 // TODO Auto-generated method stub
  17.                                         new AlertDialog.Builder(null)
  18.                                         .setTitle("自定义SimpleAdapter")
  19.                                         .setMessage("CheckBox成功触发监听事件!")
  20.                                         .show();
  21.                                 }
  22.                         });
复制代码

自己感觉是这个类没有实例化,但是android不是java,onCreate就是开始Activity。如果可以解释下android的class中什么标志着这个class被实例就更好了。
我在另一个类中调用了该类
  1.         sp = new MyAdapter(this, list, R.layout.simpleadapter, new String[]{"item1_imageview","item1_bigtv","BIGTV","item1_smalltv"}, new int[] {R.id.Simple_iv,R.id.Simple_bigtv,R.id.Simple_smalltv})
  2.         
复制代码








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2