(1)我先用new TestView,设置要显示的文本,但并未在main.xml中声明
先运行一下,一切正常,在程序中显示出文本(2)但是当我加入button的监听程序后,到模拟器上运行时,一打开程序,程序就立即停止
源代码如下:package com.demo.android.avtivitytest;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class ActivityTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView test = new TextView(this);
test.setText("Avtivity 1");
setContentView(test);
Button btn = (Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();
intent.setClass(ActivityTestActivity.this, Report.class);
startActivity(intent);
ActivityTestActivity.this.finish();
}
});
}
}eclipse报错,java.lang.NullPointerException
当我把未在main.xml中生命的testview注释掉后,程序正常运行请问这是为什么?
为什么第一次可以,第二次加入button的监听程序后就无法运行呢?
先运行一下,一切正常,在程序中显示出文本(2)但是当我加入button的监听程序后,到模拟器上运行时,一打开程序,程序就立即停止
源代码如下:package com.demo.android.avtivitytest;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class ActivityTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView test = new TextView(this);
test.setText("Avtivity 1");
setContentView(test);
Button btn = (Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();
intent.setClass(ActivityTestActivity.this, Report.class);
startActivity(intent);
ActivityTestActivity.this.finish();
}
});
}
}eclipse报错,java.lang.NullPointerException
当我把未在main.xml中生命的testview注释掉后,程序正常运行请问这是为什么?
为什么第一次可以,第二次加入button的监听程序后就无法运行呢?
解决方案 »
- android设计求思路
- 一个Animation 两个View 显示动画不同步
- 使用scroller出现 Application is not responding怎么办啊
- android手机飞行模式无法关闭,求解
- Android中Activity和Handler的运行机制
- android中设置progressbar的style的时候提示NO source
- activity Onpause方法被周期的调用
- cocos2d-x 3.0 的CCTime怎么修改?
- 判断电子罗盘是否校准
- android app安装时最后一步提示后台运行 怎样才能:默认勾选
- .net上进行gzip的字符串,在android中解压缩。
- 关于setContentView
第二次setContentView(test) 就把前面的R.layout.main给取代了,
再调用findViewById(R.id.button)就是在 test这个TextView中找了,当然找不到这个button了你可以这样:TextView test = new TextView(this);
test.setText("Avtivity 1");
addContentView(test, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
SysApplication.getInstance().addActivity(this);
setContentView(R.layout.arts);
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
SysApplication.getInstance().addActivity(this);
setContentView(R.layout.arts);