【问题标题】:Listview with Details带有详细信息的列表视图
【发布时间】:2015-03-24 13:10:00
【问题描述】:

我有一个显示客户端列表的 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 中,我更喜欢一些活动、片段或一些弹出之王。

有人可以帮忙吗?

【问题讨论】:

  • 您的意思是您需要将值从一个活动传递到另一个活动并在那里显示。我说的对吗?
  • 我是 android 新手,我是一个使用内置导航抽屉的寺庙,列表视图在主要活动中,我想要一个弹出式的东西、片段或活动,如你所说。
  • 是否可以在适配器中显示结果? @里亚兹

标签: android listview android-intent android-fragments android-activity


【解决方案1】:

使用这个代码:

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

希望这会奏效..

【讨论】:

  • 你能解释一下它是如何工作的吗?你在代码中写了什么?
  • 问题中的片段使用完全相同的代码,它有什么帮助?
  • 这对你有好处@Riyaz。 #Avishek Das 的完整答案
【解决方案2】:

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

        }
    } 
}

【讨论】:

    【解决方案3】:
    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);
                             }
                         }
    );
    }
    

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

    【讨论】:

      【解决方案4】:

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

      您可以在 Android 中查看“Intent”。用来启动一个像activity一样的组件,可以携带信息到这个新的activity启动。

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

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

      List<'CustomObject'>
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-28
        • 2016-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多