android中activity.findViewById()方法查找的是什么?
//代码1:package com.example.testsdk2;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bu=(Button)findViewById(R.id.bu_1); bu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(MainActivity.this, scActivity.class); startActivity(intent); Toast.makeText(MainActivity.this, "按钮被按下", Toast.LENGTH_LONG).show(); } }); } } package com.example.testsdk2;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class scActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }}如果activity.findViewById()方法查找的是对象,那么点击第一个activity上面的“点击按钮进行测试”按钮切换到scActivity之后,再次点击该按钮,会第二次弹出Toast提示信息
而且,如果两个activity布局XML文件不一样,在其中一个对另一个布局文件中定义的View组件id进行引用并修改属性会造成程序崩溃。
代码如下:
//代码2:package com.example.testsdk2;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class scActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.sc_activity); Button but=(Button)findViewById(R.id.bu_2); but.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(scActivity.this,"点击修改按钮", Toast.LENGTH_LONG).show(); Button bu1=(Button)findViewById(R.id.bu_1); Toast.makeText(scActivity.this,"查找id没崩溃", Toast.LENGTH_LONG).show();// bu1.setTextColor(Color.RED); } }); }} 如果activity.findViewById()查找的是id指向的对象,那么为什么代码1中添加的监听事件在scActivity中失效,如果查找的不是对象,那返回的是什么? |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
代码2里面 你的布局文件是sc_activity 但是你去查找的button bu_1并不在sc_activity里面阿 .... 怎么可能找得到... |
|
|
|
|