//代碼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();
????????????????
????????????}
????????});
????}
????
}<RelativeLayout?xmlns:android="http://schemas.android.com/apk/res/android"
????xmlns:tools="http://schemas.android.com/tools"
????android:layout_width="match_parent"
????android:layout_height="match_parent"
????android:paddingBottom="@dimen/activity_vertical_margin"
????android:paddingLeft="@dimen/activity_horizontal_margin"
????android:paddingRight="@dimen/activity_horizontal_margin"
????android:paddingTop="@dimen/activity_vertical_margin"
????tools:context="com.example.testsdk2.MainActivity"?>
????<TextView
????????android:id="@+id/tx_1"
????????android:layout_width="wrap_content"
????????android:layout_height="wrap_content"
????????android:text="@string/hello_world"?/>
????<Button?
????????android:id="@+id/bu_1"
????????android:layout_width="wrap_content"
????????android:layout_height="wrap_content"
????????android:text="點擊按鈕進行測試"
????????/>
</RelativeLayout>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);
????????????}
????????});
????}
}<?xml?version="1.0"?encoding="utf-8"?>
<LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"
????android:layout_width="match_parent"
????android:layout_height="match_parent"
????android:orientation="vertical"?>
????
????<Button?
???????android:id="@+id/bu_2"
???????android:layout_width="wrap_content"
???????android:layout_height="wrap_content"
???????android:text="點擊啟動修改"
????????/>
</LinearLayout>如果activity.findViewById()查找的是id指向的對象,那么為什么代碼1中添加的監聽事件在scActivity中失效,如果查找的不是對象,那返回的是什么?
2 回答

nekomeow3357651
TA貢獻1條經驗 獲得超1個贊
代碼2里面 ?你的布局文件是sc_activity ?但是你去查找的button ?bu_1并不在sc_activity里面阿 ?.... ?怎么可能找得到...
- 2 回答
- 1 關注
- 3420 瀏覽
添加回答
舉報
0/150
提交
取消