通过Android AlertDialog单选列表传递额外数据

时间:2014-04-20 10:19:05

标签: android list hashmap alertdialog

这里我有一个触发alertDialog的按钮监听器。

btn_newKharcha.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        datasource.open();
        List<Partners> partners = datasource.findAll();

        Partners p = new Partners();
        String[] partners_arr = new String[partners.size()];

        for(int i=0; i<partners.size(); i++){
            p = partners.get(i);
            partners_arr[i] = p.getName();
        }

        alertSelectPartner(v, partners_arr);
    }
});

这样做,我可以传递PARTNERS的名称,但不能传递PARTNERS_ID。这是我创建的alertDialog示例。在获取整数时,我只能得到数组索引,这是没用的。

private void alertSelectPartner(View v, String[] partners_list) {

    AlertDialog.Builder builder = new AlertDialog.Builder(Home.this);
    builder.setTitle(R.string.select_partner);
    builder.setItems(partners_list, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {

            Intent intent = new Intent(getApplicationContext(),
                    NewKharcha.class);
            intent.putExtra("partners_id", String.valueOf(which));
            startActivity(intent);

        }
    });

    AlertDialog alertDialog = builder.create();
    alertDialog.show();

}

有没有像(Hashmaps)那样的东西,以便我可以通过OnClickListener传递带有Intent的partners_id。

1 个答案:

答案 0 :(得分:0)

intent.putExtra("partners_id", array);

Intents在引擎盖下使用了地图。使用intent.getExtras().getIntArray()

访问它