【问题标题】:How to hide/show button in Android ListView dynamically如何在 Android ListView 中动态隐藏/显示按钮
【发布时间】:2018-01-07 08:21:08
【问题描述】:

我有一个带有两个按钮的listview

一旦我得到服务器的响应,我想用 textview 替换这两个按钮。

我怎样才能做到这一点?

服务器响应后:

public void onResponse(String response) {
                    try {
                        JSONObject obj = new JSONObject(response);

                        if (obj.getString("response").equals("1")) {
                            JSONObject res = new JSONObject(obj.getString("data"));

                            Toast.makeText(getApplicationContext(), obj.getString("message"), Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(getApplicationContext(), obj.getString("message"), Toast.LENGTH_SHORT).show();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

我没有创建任何适配器。

【问题讨论】:

  • 好的,首先在您的布局中创建这两个按钮并设置可见性 = 可见并创建 textview 并设置它的可见性 = 消失,当您做出响应时,您可以将按钮的可见性设置为(消失)并且文本视图是(可见的)
  • 如何获取在服务器响应后点击了哪一行按钮,并且同一行 textview 应该显示和隐藏点击的按钮
  • 那么你的要求是按钮和文本视图在列表视图中??你没有在你的问题中这么说,你的问题并不明显!那么你的问题到底是什么?您想在单击列表视图内的按钮时进行这些操作吗?
  • 好吧..让我告诉你我想要的是..有计时器,一旦点击圈按钮,它将继续生成。 1. 00:00;45 scanButton 2. 00:00;45 scanButton 等一旦我按下扫描按钮,我就会将扫描详细信息发送到服务器,响应将是全名.. 然后我想在该特定行中显示该名称并隐藏那个扫描按钮..就是这样。
  • 好的,我会在答案等待中写下我的答案

标签: java android listview button textview


【解决方案1】:

您需要扩展 ArrayAdapter 以自定义您的列表视图项。

在您的 xml 中,保留按钮和文本视图,对于文本视图,保留

android:visibility="gone"

在你的适配器类中初始化文本视图和按钮。当您收到响应时,启用 textview 可见性并禁用按钮可见性

textView.setVisilibity(View.VISIBLE);
button.setVisilibity(View.GONE);

【讨论】:

    【解决方案2】:

    好的,我理解你的问题,最好的方法是使用 recyclerview 而不是 listview,首先看这个例子或 recyclerview recyclerview example 这比普通的 listview 简单而且最好, 第二个在onBindViewHolder函数你可以像这样创建自己的listner

     @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.your_sender_button.setonclickLinstener(new View.OnClickListener { @Override
        public void onClick(View view) {
          yourActivity.sendTimer(holder.btn1, your_sender_button, holder.your_textview_name);
        }
    });
    }
    

    sendTimer 是用于发送计时器的服务函数,参数是您的视图,因此当您获得响应时,请设置您在函数中传递的这些视图的可见性

    【讨论】:

    • 如果你想发送你的代码发送它,但也许明天我会重新发送给你,因为我现在正在工作
    • 好的没问题!!我将尝试使用 recyclerview 一次.. 我怎样才能发送代码??
    • 如果你有dropbox或者github你可以在里面设置你的代码,很简单..
    • 请参阅本教程,android-examples.com/…。这是使用 recylerview 的简单示例
    • 我可以设置一个recyclerview,但我如何隐藏特定的行按钮并显示特定的行文本视图。扫描后?如何获取 onActivityResult() 中的行位置
    猜你喜欢
    • 2014-01-13
    • 1970-01-01
    • 2019-08-23
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多