Android错误之"source not find"

刚刚开始测试Activity之间数据传递时,写了两个Activity,数据共享是通过SharePreferences完成。但是运行时,会

出现应用程序意外终止的异常。通过Logcat调试,得知,原来Activity.findViewById()没有获取到View。

 

查看View的id也正确,没有错误。后来恍然大悟:

 

看如下代码:

public class MainActivity extends Activity { private TextView view_disp; private Button btn_skip; public MainActivity(){ } public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); Log.v("begin", "第一步"); this.setContentView(R.layout.main); //显示main中定义的布局 view_disp = (TextView)this.findViewById(R.id.view_disp); btn_skip = (Button)this.findViewById(R.id.btn_skip); Log.v("next", "第二步"); btn_skip.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //单击按钮,跳转到另一个Activity Intent showInputIntent = new Intent(); showInputIntent.setClass(MainActivity.this, TargetActivity.class); startActivityForResult(showInputIntent, 0); } }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent intent){ if(requestCode == 0 && resultCode == Activity.RESULT_OK){ SharedPreferences preferences = getSharedPreferences("Text",0); view_disp.setText(preferences.getString("data", null)); //后一个参数是,当没有获取到data的值时,将null赋值给textview

这是后来改过的代码:

getViewById的使用,一定要放在onCreate()方法的this.setContentView(R.layout.main)之后。

不可以在类声明TextView时用view_disp = this.findViewById(R.id.view_disp);

但是,这里我有一点不明白:在R中不是已经存在这个id了吗?按说,应该可以啊。……&……

你可能感兴趣的:(android,测试,null,Class,button)