我膨脹一個xml使用LayoutInflater
,因爲我想這個視圖多次(動態)。Overiding onFinishInflate()方法
我ònCreate`方法如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
v[i]= new View[4];
LinearLayout linear= (LinearLayout) findViewById(R.id.linearLayout);
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for(int i = 1; i <4; i++) {
v[i]= inflater.inflate(R.layout.row, linear); //v[i] returns view i.e. Linear Layout from my row.xml
}
}
我對row.xml代碼如下 -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffaf04"
android:orientation="horizontal"
android:padding="10dip" >
<LinearLayout
android:id="@+id/rel1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="#ffffff"
android:orientation="vertical"
android:padding="5dp" >
<ImageView
android:id="@+id/imageView1inInflatedRow"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/image_holder" >
</ImageView>
<Button
android:id="@+id/button1inInflatedRow"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="5dp"
android:background="@layout/button_selector"
android:padding="5dip"
android:textColor="#FFFFFF"
android:textSize="12sp" >
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:background="#ffffff"
android:orientation="vertical"
android:padding="5dp" >
<ImageView
android:id="@+id/imageView2inInflatedRow"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/image_holder" >
</ImageView>
<Button
android:id="@+id/button2inInflatedRow"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="5dp"
android:background="@layout/button_selector"
android:padding="5dip"
android:textColor="#FFFFFF"
android:textSize="12sp" >
</Button>
</LinearLayout>
</LinearLayout>
現在行包含按鈕,我想設置一個onclick監聽器按鈕即button1inInflatedRow
和button2inInflatedRow
這些按鈕執行相同的功能,但我需要知道哪個按鈕調用了該功能。那麼,如何爲這些按鈕撥打findVieById()
?或者有沒有其他的方式來調用按鈕onclick
..?
*螞蟻爲按鈕設置Onclicklistener。* - 膨脹佈局後,在新膨脹的佈局中找到這些按鈕並分配偵聽器。 *我知道監聽器必須在View.OnFinishInflate()方法中。* - 也許如果你製作自己的自定義視圖。 – Luksprog
當你在你的問題中聲明OnFinishInflate是一個視圖方法而不是一個活動,所以你不能在你的活動中覆蓋它。 – Christos
@Christos所以在哪裏覆蓋方法? –