目的:从一个activity启动另一个activity
代码:
第一个activity
package gegewu.mytest;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MyTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button)findViewById(R.id.btn1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(MyTestActivity.this, mytest1.class);
startActivity(intent);
MyTestActivity.this.finish();
}
});
}
}
第二个activity
package gegewu.mytest;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
class mytest1 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
Button btn2 = (Button)findViewById(R.id.btn2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(mytest1.this, MyTestActivity.class);
startActivity(intent);
mytest1.this.finish();
}
});
}
}
错误:点击第一个activity的button后,出现异常。查看logcat,错误为:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo
调试中出现上述错误,意味着自己的代码出现了问题。错误会在logcat中显示,具体位置为Caused By: ......如1.Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class fragment(这表示xml和activity有一个错误造成了异常).矫正这个错误,就能解决问题。
我此处的错误为:Caused by: java.lang.IllegalAccessException: access to class not allowed
显然,这是个很低级的错误,
class mytest1 extends Activity
应改为
public class mytest1 extends Activity
问题解决。