Android Studio按钮onClick:无法解析符号

时间:2014-07-25 18:04:03

标签: android mobile android-studio

我最近在使用Android Studio遇到了一些非常有线的事情,在我的Login片段xml中我定义了一个Button和一个TextView。按钮和textView都可以是可点击的。但是,只有switchToSignUp方法可以在xml文件中解析。当我尝试为Button分配onClick监听器时,我收到一条警告:Cannot resolve symbol "loginClick"。即使警告存在,代码编译也很好但是当我单击按钮时没有任何反应。我错过了一些明显的东西,还是可能是Android Studio的错误?

<Button
    android:text="login"
    android:onClick="loginClick"
    android:id="@+id/loginBtn"
    style="@android:style/Widget.Holo.Button.Borderless"
    android:background="@android:color/holo_red_light"
...
/>
<TextView
    android:text="No account ?"
    android:id="@+id/singin_signup_tv"
    android:clickable="true"
    android:onClick="switchToSignUp"
    ...
 />

这是我如何定义onClick侦听器:

public void switchToSignUp(View view){
    Log.i(TAG,"switch to sign up ");
    switchView();
}

public void loginClick(View view){
    Log.i(TAG,"login clicked");
    new AsyncTask<String , Void , String>(){
        protected String doInBackground(String... params) {/*...*/  }
    }.execute("");
}

1 个答案:

答案 0 :(得分:2)

正如@CarlosJimenes所提到的,我必须在LoginFragment类的onCreateView()方法中分配onClick Listener。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container , Bundle savedInstanceState){
    inputView =  inflater.inflate(R.layout.fragment_login,
            container,
            false
    );
    Button btn = (Button) inputView.findViewById(R.id.loginBtn);
    btn.setOnClickListener( loginClicked );
    return inputView;
}