如何动态隐藏/显示Android ListView中的按钮

时间:2018-01-07 08:21:08

标签: java android listview button textview

我有一个带有两个按钮的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();
                    }
                }

我还没有创建任何适配器。

2 个答案:

答案 0 :(得分:0)

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

在xml上,保留按钮和文本视图以及textview,保持

android:visibility="gone"

初始化适配器类中的textview和button。获得响应时,启用textview可见性并禁用按钮可见性

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

答案 1 :(得分:0)

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

 @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是用于发送计时器的函数,参数是您的视图,因此当您获得响应时,您可以在函数中传递这些视图的可见性