带详细信息的列表视图

Listview with Details

我有一个显示客户列表的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();
                             }
                         }


);
}

我想显示信息但不是在 toast 中,我更喜欢一些 activity、片段或一些弹出窗口之王。

有人可以帮忙吗?

使用代码:

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();
        }
    });

希望这会奏效..

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);
                         }
                     }
);
}

您可以在另一个 activity 中获取意图值。

如果我理解了,你想发送一些信息给另一个activity来显示这个信息。

你可以看看Android中的“Intent”。它用于启动一个像 activity 这样的组件,并且可以携带信息到这个新的 activity 来启动。

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

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

List<'CustomObject'>

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

如果你想传递你在列表中显示的客户端名称,你可以从适配器获取 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);

        }
    } 
}