适用于使用Android Studio的Android应用。
我有一个听,并处理RFID阅读器事件的课程。 这是与活动相关联的单独类。 RFID EPC正在处理RFID事件的类中读取,但我想在UI上显示此EPC,但我不知道如何实现这一点。
我尝试过实现ValueSubmittedListener,但不确定如何将它们全部绑定在一起以使其工作:
我拥有的是
public class ReadMemoryActivity extends Activity implements
View.OnClickListener, ValueSubmittedListener
{
private TextView txtSelection = (TextView) findViewById(R.id.selection);//where EPC is to be displayed
public void onSubmitted(String epc)
{
txtSelection.setText(epc);
}
然后是活动的课程
public class BaseReadAction implements RfidReaderEventListener
{
private List<ValueSubmittedListener> epcListener = new
ArrayList<ValueSubmittedListener>();
public void addListener(ValueSubmittedListener epc)
{
epcListener.clear();
epcListener.add(epc);
}
private void notifyListeners()
{
for(ValueSubmittedListener epc : epcListener)
{
epc.onSubmitted(getSelection());
}
}
public void setSelection(String epc) {
setEPC = epc;
notifyListeners();
}
我看到那里有不少听众。看看TextWatcher也是如此,但是看起来它看起来像是一个TextView而不仅仅是一个字符串变量。我对Android dev和Java一般都是新手,所以我的知识远远不能满足于什么。
答案 0 :(得分:0)
应该是EditText而不是TextView,不是吗?
Textwatcher可以做很多事情:
代码:
txtSelection.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});
答案 1 :(得分:0)
所以这就是我最终要做的就是让它发挥作用。 这是一个答案,可能不是最好的答案,当然不是唯一的答案,但在这里......
在baseClass中添加了以下内容
public class BaseReadAction extends Activity implements
RfidReaderEventListener {
private String epcNo;
private ChangeListener listener;
public String getEpcNo()
{
return epcNo;
}
public void setEpcNo(String epc)
{
this.epcNo = epc;
if(listener != null) listener.onChange();
}
public ChangeListener getListener() {
return listener;
}
public void setListener(ChangeListener listener) {
this.listener = listener;
}
public interface ChangeListener
{
void onChange();
}
}
然后在触发扫描的key_Down事件的UI类中我把它放了。
// listens for event when epc is assigned to variable (ReadAction is an instance of BaseReadAction class
ReadAction.setListener(new BaseReadAction.ChangeListener(){
@Override
public void onChange()
{
txtSelection.setText(ReadAction.getEpcNo());//sets the read value to the textView
}