0 java android android-inflate
我使用布局inflater,用一些按钮和一些文本视图来膨胀线性布局.如何在充气布局中访问小部件?
例如:我有一个按钮,我想为它设置onclick监听器.通常用"findViewById"声明按钮,然后设置监听器.但是膨胀按钮不存在于活动xml中(线性布局使用不同的xml而不是活动xml)以使用"findViewById"查找其视图.
我的inflater代码:
LinearLayout item = (LinearLayout )findViewById(R.id.linear_layout_duel_basic_easy);
View child_1 = getLayoutInflater().inflate(R.layout.linear_layout_duel_1, null);
item.addView(child_1);
Run Code Online (Sandbox Code Playgroud)
我要隐藏的布局:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="TextView" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
它应该工作.这里没什么特别的.
LinearLayout item = findViewById(R.id.linear_layout_duel_basic_easy);
for (int i = 0 ; i < 10; i++) {
View child = getLayoutInflater().inflate(R.layout.linear_layout_duel_1, null);
item.addView(child);
final int finalI = i;
child.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "clicked = " + finalI, Toast.LENGTH_LONG).show();
}
});
}
Run Code Online (Sandbox Code Playgroud)