Java &引用;表达式的类型必须是数组类型,但解析为TextView";
我在编译一些源代码时遇到了一个问题,我得到了一个错误,指出“表达式的类型必须是数组类型,但它已解析为TextView”。我尝试在Google和StackOverflow上查找这个问题,因此只返回一个(未回答的)结果 有人能给我指出正确的方向,或者举个例子说明如何解决这个问题吗 非常感谢。 -提姆 我在以下两行中有两个此错误的实例:Java &引用;表达式的类型必须是数组类型,但解析为TextView";,java,android,arrays,Java,Android,Arrays,我在编译一些源代码时遇到了一个问题,我得到了一个错误,指出“表达式的类型必须是数组类型,但它已解析为TextView”。我尝试在Google和StackOverflow上查找这个问题,因此只返回一个(未回答的)结果 有人能给我指出正确的方向,或者举个例子说明如何解决这个问题吗 非常感谢。 -提姆 我在以下两行中有两个此错误的实例: beamMsg[i].setText(new String(msg[i].getRecords()[1].getPayload())); beamMsg2[i].se
beamMsg[i].setText(new String(msg[i].getRecords()[1].getPayload()));
beamMsg2[i].setText(new String(msg[i].getRecords()[1].getPayload()));
资料来源:
void processIntent(Intent intent) {
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(
NfcAdapter.EXTRA_NDEF_MESSAGES);
// only one message sent during the beam
NdefMessage[] msg = new NdefMessage[rawMsgs.length];
for (int i = 0; i < msg.length; i++) {
msg[i] = (NdefMessage) rawMsgs[i];
// record 0 contains the MIME type, record 1 is the AAR, if present
beamMsg[i].setText(new String(msg[i].getRecords()[1].getPayload()));
beamMsg2[i].setText(new String(msg[i].getRecords()[1].getPayload()));
}}
void processIntent(Intent-Intent){
Parcelable[]rawMsgs=intent.getParcelableArrayExtra(
NfcAdapter.额外信息);
//光束传输期间仅发送一条消息
NdefMessage[]msg=新的NdefMessage[rawMsgs.length];
对于(int i=0;i
您试图对对象beamMsg[i]调用setText()方法,编译器说beamMsg是一个TextView,而不是TextView[]数组。这同样适用于beamMsg2beamMsg[i].setText(新字符串(msg[i].getRecords()[1].getPayload());这里getRecrods()是一个函数,您有getRecoards()[1]。您应该使用建议的方法向函数传递参数,如getRecords(1):beamMsg2[i].setText(新字符串(msg[i].getRecords(1).getPayload())导致eclipse在我已经遇到的两个错误之上生成两个新错误:NdefMessage类型中的方法getRecords()不适用于参数(int)那些beamMsg[i]真的是TextView吗?如果是这样,则强制转换它,然后调用.setText…@TimSalter您在NdefMessage中有方法getecords(int-value)吗?NdefMessage是纯文本优秀的-这解决了问题!还有一件事。。。我在同一行中遇到两个错误:无法调用数组类型NdefMessage[]上的getRecords(int)同一问题?(当我尝试删除[]时,会导致更多错误,如果您尝试:NdefRecord[]records=msg[I].getRecords();argh,getRecords()不接受任何参数,请删除int参数删除行中的int:for(int I=0;I