创建可监听API中的更改并根据其在Android上更改其颜色的自定义图标

时间:2019-09-10 09:03:27

标签: android api event-listener uielement

我正在尝试实现一个自定义图标,该图标会根据API响应更改其颜色(绿色代表空闲,红色代表忙碌)。到目前为止,我从API收到有关打印机状态是否空闲的响应,并创建了一个新方法来检查打印机是否空闲,如果是,则返回true,否则返回false。我的问题是我不是应该为自定义图标使用哪个事件处理程序来实现此isIdle()方法,或者对于这种情况是否还有其他方法?

我有一个自定义适配器类,用于显示打印机名称,它的型号和我需要显示的状态,所有这些信息都来自API。

这是https://imgur.com/a/sR4rx1Y的图片

这是我的适配器类,以防万一。

public class NsdServiceInfoAdapter extends ArrayAdapter<PrinterNew> {
private Context mContext;
private List<PrinterNew> services;
private InetAddress hostAddress;


layout id (list item layout Id) and data model.

public NsdServiceInfoAdapter(@NonNull Context context, int layoutId, 
List<PrinterNew> list) {
    super(context, layoutId, list);
    mContext = context;
    services = list;
}

@NonNull
@Override


public View getView(int position, @Nullable View convertView, @NonNull 
ViewGroup parent) {
    View listItem = convertView;


    if (listItem == null)
        listItem = 
LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);

    PrinterNew currentService = services.get(position);



    TextView t = listItem.findViewById(R.id.TextView_serviceName);
    TextView r = listItem.findViewById(R.id.TextView_serviceIP);
    r.setText("model: " + currentService.getPrinterModel());
    t.setText("name: " + currentService.getPrinterName());


    Log.d("TAG", "model" + String.valueOf(currentService.getPrinterModel()));
    Log.d("hello2", String.valueOf(currentService.getPrinterName()));


    return listItem;
}

}

这是我在Printer类中的isIdle()方法

    public boolean isIdle() {
    if (state == -1 && currentMenu == 0) {
        return true;
    } else {
        return false;
    }
}

0 个答案:

没有答案