亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

android中activity.findViewById()方法查找的是什么?

android中activity.findViewById()方法查找的是什么?

李木人 2016-08-01 12:11:35
//代碼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里面阿 ?.... ?怎么可能找得到...

查看完整回答
1 反對 回復 2016-08-02
  • 2 回答
  • 1 關注
  • 3420 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號