将editText
作为checkMQTTResources
传递给方法view
,并对传递给此方法的每个视图的ID进行switch-case
checkMQTTResources
。
如下所示,尝试访问每个视图的getText
方法,但在使用自动完成功能时不允许或不显示。
为什么我不能使用'getText'?
代码:
btnStubView_Connect.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
checkMQTTResources(etStubView_ip);
}
});
}
protected void checkMQTTResources(View view) {
// TODO Auto-generated method stub
switch(view.getId()) {
case R.id.etSubView_ip:
view.gettext //gettext is not allowed here, why?
break;
case R.id.etSubView_port:
break;
case R.id.etSubView_clientID:
break;
case R.id.etSubView_KATimer:
break;
}
}
答案 0 :(得分:2)
您错过了typecast
view
至EditText
:
((EditText)view).getText();
答案 1 :(得分:1)
解决问题的两种方法。
首先将您的View
投放到EditText
,然后致电getText()
自己接收EditText
答案 2 :(得分:1)
为什么我不能使用'getText'
因为该方法接受View
,而EditText
是View
,您将能够访问更通用类的公共方法{{1} } class,没有这样的方法View
。
要解决此问题,您应该将视图转换(转换)为EditText,例如:
getText()
或接受((EditText)view).getText().toString();
作为参数而不是EditText
:
View
答案 3 :(得分:1)
View
是视图层次结构中的顶级类
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.EditText
查看没有getText()
方法,基本上它是在android.widget.TextView
中定义的。调用getText()
方法需要向下转换