我正在使用AVD模拟器来运行apk。我创建了一个简单的活动,它有两个按钮,但每当我为其中任何一个编写代码时,应用程序都不会启动,不包括初始化它们。
如果我声明如下的actionlistener(星号之间的代码),它会导致apk在启动时抛出错误。我试图在xml中放置“android:onClick="btnLoginClicked
”,但是我得到了相同的结果。
任何人都能告诉我为什么会这样吗?我觉得我错过了一些非常简单的事情。
package uk.ac.aber.cs22120.fuzzyNinja.pathFinder;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
//import android.view.View;
import android.widget.*;
public class ActivityLogin extends Activity {
private Button btnLogin;
private ProgressBar progressBar_Login;
//
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
btnLogin = (Button) findViewById(R.id.btnLogin);
progressBar_Login = (ProgressBar) findViewById(R.id.progressBar_Login);
***************************
//btnLogin.setOnClickListener(btnLoginClickListener);
***************************
setContentView(R.layout.activity_login);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_login, menu);
return true;
}
*************************
//private OnClickListener btnLoginClickListener = new OnClickListener(){
// public void onClick(View v){
//
// }
//};
*************************
}
以下是此活动的XML:https://www.dropbox.com/s/d91t6xqrusi1s2t/activity_login.xml
答案 0 :(得分:2)
试试这个..
在初始化任何setContentView(R.layout.activity_login);
,super.onCreate
等之前,明确button
以下textview
,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
btnLogin = (Button) findViewById(R.id.btnLogin);
progressBar_Login = (ProgressBar) findViewById(R.id.progressBar_Login);
***************************
//btnLogin.setOnClickListener(btnLoginClickListener);
***************************
}
答案 1 :(得分:0)
您可以随时在onCreate()
方法中对布局进行充气后初始化视图中的事件,如果没有它,您的应用程序将无法找到您正在尝试的视图。
在初始化视图之前,请尝试以下代码并设置setcontentView()
方法。
public class ActivityLogin extends Activity {
private Button btnLogin;
private ProgressBar progressBar_Login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
btnLogin = (Button) findViewById(R.id.btnLogin);
progressBar_Login = (ProgressBar) findViewById(R.id.progressBar_Login);
btnLogin.setOnClickListener(btnLoginClickListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_login, menu);
return true;
}
private OnClickListener btnLoginClickListener = new OnClickListener(){
public void onClick(View v){
//your logic here.
}
};
}