xiaoyan_12 2012-12-04 05:38 采纳率: 25%
浏览 6142
已采纳

在ArrayAdapter设置onClickListener

在程序中我写了以下的类,所有需要的 imports 都在程序中。

public class More  extends Activity {

    String[] MoreItems = {
            "Transfers",
            "Budgets",
            "Branches",
            "Tools",
            "News",
            "Customer Service",
            "Settings",
            "Help",
            "About"
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.more_view);

        ListView moreListView = (ListView) findViewById(R.id.moreListView);
        MoreListAdapter listAdapter = new MoreListAdapter();
        moreListView.setAdapter(listAdapter);


    //  accountsTypeListView.setOnItemClickListener(listClickListner);

    }


    class MoreListAdapter extends ArrayAdapter<String> {
        MoreListAdapter() {
            super(More.this, R.layout.list_item, MoreItems);    
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            View row;

            if (convertView == null) {
                LayoutInflater inflater = getLayoutInflater();
                row = inflater.inflate(R.layout.list_item, parent, false);
            } else {
                row = convertView;
            }
            TextView tv = (TextView) row.findViewById(R.id.textItem);

            tv.setText(getItem(position));

            return row ;
        }
    }

}

它将生成List,我想在respective click上调用respective activities,比如用户点击Transfer ,它就会转到 transfer Activity。如何在List上调用onClickListener,并且在click上开启 Activity?

  • 写回答

3条回答 默认 最新

  • WindKun 2012-12-04 10:26
    关注

    如果是要实现点击相对应的Item进入相应的Activity的话,楼主可以这样写:
    List> p = GlobalApplication.permission;
    下面有几个Activity你就写几个map放到list里面
    Map map = new HashMap();
    map.put("app", NewsActivity.class);
    p.add(map);
    下面是ListView的监听:
    gv.setOnItemClickListener(new OnItemClickListener() {

                    public void onItemClick(AdapterView<?> arg0, View arg1,
                            int arg2, long arg3) {                  
                        if (list.get(arg2).get("app") != null) {
                            Intent intent = new Intent(HomeActivity.this,
                                    (Class<?>) list.get(arg2).get("app"));
    
                            startActivity(intent);
                        } 
                    }
                });
    

    你可以试一下!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题