这是使用Android Studio的Android应用程序。
我有一个倾听并处理RFID读取器事件的课程。这是与活动相关的单独类别。RFID EPC正在处理处理RFID事件的课程中,但我想在UI上显示此EPC,但我不确定如何实现此目的。
我曾尝试实现valuesubsittedListener,但不确定如何将它们绑定在一起以使其起作用:
我拥有的是
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,但乍一看,它看起来比字符串变量更重要。总的来说,我仍然是Android Dev和Java的新手
应该是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) {
}
});
,所以这是我最终为使它工作而做的。这是一个答案,可能不是最好的答案,当然不是唯一的答案,但这是...
在基础上,我添加了以下
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
}