当我运行下面的代码时,永远找不到edittext中的用户名。我已经使用和不使用用户名进行了测试,但是当单击该按钮时,它会向eventlistener发送一个null对象。我是android的新手,并且当用户名edittext包含用户名时,为什么它没有返回字符串。
var lblTag: UILabel!
var i=0
let arrTags : NSArray! // Add your tangs in this Array
@IBAction func btnImageTapped(sender : UIButton)
{
if (sender.selected)
{
sender.selected=false
// Display All tags
for(i=0;i<arrTags.count;i++)
{
// set random x , y coordinate
lblTag = UILabel(frame: CGRectMake(CGFloat(i)+1.0,CGFloat(i)+6.0,25,25))
lblTag.tag=i;
lblTemp.text = arrTags.objectAtIndex(i) as? String
self.view.addSubview(lblTag)
}
}
else
{
sender.selected=true
// Hide All Tags
let lblTemp : UILabel!
for(i=0;i<arrTags.count;i++)
{
lblTemp = self.view.viewWithTag(i) as! UILabel
lblTemp.hidden = true
}
}
}
}
无论如何,谢谢你的帮助和时间
答案 0 :(得分:1)
eventListener
为null,这就是你得到NullPointerException的原因。
由于原始接口仅提供派生类应该执行的操作的合约,因此您还必须在其后面创建逻辑:
private interface eventListener {
void onEvent(String string);
}
eventListener listener = new eventListener() {
@Override
public void onEvent(String string) {
Log.e(TAG, "onEvent " + string);
}
};
我不确定你是否想要一个接口,因为一个简单的方法会这样做:
public void onLogin(String username) {
Log.e(TAG, "onLogin " + username)
}
答案 1 :(得分:0)
我认为问题出在这一行
eventListener.someEvent(usernameString);
如果没有初始化接口eventListener,你可以这样做吗?
eventListener ev = new eventListener(){
void someEvent(usernameString);
}