我正在开发一个应用程序,它在启动时会在下面的屏幕截图中显示预定义的布局,如Image(1) 。
现在点击一个按钮,我想动态添加另一个视图,如下面屏幕截图中的Image(2)到现有视图,从而生成一些类似下面屏幕截图中的Image(3)的视图。
如果再次单击 onclick,则Image(2)将添加到现有视图中,从而生成类似于Image(4)的内容。
我如何实现这一目标?
通过搜索,我发现它需要LayoutInflater.addView()
类似this或LinearLayout.addView()
like this的东西。
但我不知道在我的情况下到底要使用什么。
此外,我不想在按钮单击时添加一个视图,而是添加一组特定视图,如 imageview、2 个 textview 等。如图(2)所示。
任何帮助表示赞赏。
编辑1:
我试过这样的东西: activity_main.xml
<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" >
<LinearLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</LinearLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"
android:onClick="addViews"
android:text="Add" />
</RelativeLayout>
MainActivity.java
public class MainActivity extends Activity {
LinearLayout main;
int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
main = (LinearLayout) findViewById(R.id.main);
}
public void addViews(View view) {
LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
Button btn = new Button(this);
btn.setLayoutParams(lparams);
count++;
btn.setText("Hello World : " + count);
main.addView(btn, count);
}
}
它产生这样的东西:
现在,我如何识别单击了哪个按钮?