带有详细信息的列表视图



我有一个显示客户端列表的Listview,我在Listview中添加了一个onClickListner,这样我就可以获得被点击客户端的详细信息。

ListView l = (ListView) findViewById(R.id.jl);
l.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                             @Override
                             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                 ClientListView j = JList.get(position);
                                 String mess = "you clicked position " + position + " With Name " + j.GetClientName();
                                 Toast.makeText(Home.this,mess,Toast.LENGTH_LONG).show();
                             }
                         }

);
}

我想显示信息,但不是在吐司,我更喜欢一些活动,碎片或一些弹出的东西之王。

有人能帮忙吗?

使用以下代码:

l.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
            ClientListView j = JList.get(position);
            String mess = "you clicked position " + position + " With Name " + j.GetClientName();
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ActivityName.this);//Your activity name
    // set title
    alertDialogBuilder.setTitle("Hello!");
    // set dialog message
    alertDialogBuilder.setMessage(mess)
            .setCancelable(false)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // if this button is clicked, close
                    // current activity
                }
            });
    // create alert dialog
    AlertDialog alertDialog = alertDialogBuilder.create();
    // show it
    alertDialog.show();
        }
    });

希望这能奏效。。

如果您想传递列表中显示的客户端名称,您可以从适配器获取id并使用它。

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
        String clientName= (String) ((TextView) view
                .findViewById(R.id.client_name)).getText();
        Intent intent = new Intent(this, NextActivity.class);
          intent.putExtra("client", clientName);
            startActivity(intent);
        }
    } 
}
ListView l = (ListView) findViewById(R.id.jl);
l.setOnItemClickListener(new OnItemClickListener() {
                         @Override
                         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                             ClientListView j = JList.get(position);
                             Intent intent = new Intent(this, SecondActivity.class);
                             intent.putExtra("Keyname", j);
                             startActivity(intent);
                         }
                     }
);
}

您可以在另一个活动中获得intent值。

如果我已经理解了,您希望将一些信息发送到另一个活动以显示这些信息。

您可以在Android中查看"Intent"。它用于启动类似活动的组件,并可以将信息携带到该新活动中以启动。

Intent i = new Intent(ActivityA.this, ActivityB.class);
i.putExtra("CUSTOMER_INFO", customer.getName());
startActivity(i);

注意:如果您想在活动之间传递自定义对象,例如自定义对象列表:

List<'CustomObject'>

您的自定义对象类必须实现Parcelable。

最新更新