我有一个已经用XML定义的布局。我想向它添加一个ListView,它显示保存文件中的可变数据。
数据的大小不固定,用户可以编辑现有数据,因此我不确定您是否可以将其存储在res中。
由于我缺乏知识,我觉得以编程方式创建布局组件更有利(listview),而其他组件通过xml文件更好。
有没有办法可以同时使用xml和java来创建布局?感谢。
答案 0 :(得分:1)
您仍应将ListView放入xml文件中。通过在java中定义适配器并加载所需的任何数据,可以使其动态化。
将ListView添加到XML不会消除您使用动态数据填充它的能力。
答案 1 :(得分:1)
您实际上不需要动态创建ListView。
您可以在xml文件中以静态方式定义ListView。在您的Java代码中,您需要将适配器附加到该ListView,您的列表将自动拥有与适配器中一样多的项目。
我认为您可能需要通过ListView的一些基本示例来完全理解我想说的内容。
检查此链接以获取ListView上的分步教程:http://www.mkyong.com/android/android-listview-example/
因为你的问题实际上是关于动态地向
TextView textView = new TextView(YourClass.this);
textView.setLayoutParams(....); // specify the Layout Parameters
textView.setPadding(60, 10, 0, 10);
textView.setTextAppearance(getBaseContext(), R.style.TitleTextStyle);
如果要在任何布局中创建多个项目,请参阅以下示例代码,该代码在动态创建的LinearLayout中添加Image和TextView。
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(1);
ImageView iv1 = new ImageView(this);
iv1.setImageResource(R.drawable.control);
TextView txtTab1 = new TextView(this);
txtTab1.setText("BLah Blah BLAh");
txtTab1.setPadding(8, 9, 8, 9);
txtTab1.setTextColor(Color.parseColor("#8B4513"));
txtTab1.setTextSize(30);
txtTab1.setBackgroundResource(R.drawable.control);
txtTab1.setGravity(Gravity.CENTER_HORIZONTAL);
ll.addView(iv1,0);
ll.addView(txtTab1,1);